This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2530:CC2530 UART 数据

Guru**** 2562120 points
Other Parts Discussed in Thread: CC2530

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/701887/cc2530-cc2530-uart-data

器件型号:CC2530

这就是组成。

P0_2 RX0

P0_3 TX0

P0_4 TX1

P0_5 RX1

使用 CC2530的即时消息  

TX 数据显示在 P0_3中、但接收中断上没有可用的数据。  

为什么?


空 InitUart (字节端口、短速度)

如果(端口=0)



为 UART0外设选择 PERCFG &=~0x01;//AlertNative 1。
P0SEL |= BIT2 | BIT3;//P0.2和 P0.3外设模式启用。

U0CSR |= 0x80;为 USART0选择//UART 模式。

如果(速度= HAL_UART_BR_57600 ||
速度= HAL_UART_BR_115200)

U0BAUD = 216;

其他

U0BAUD = 59;

开关(速度)

案例 HAL_UART_BR_9600:
U0GCR = 8;
中断;
案例 HAL_UART_BR_19200:
U0GCR = 9;
中断;
案例 HAL_UART_BR_38400:
案例 HAL_UART_BR_57600:
U0GCR = 10;
中断;
默认值:
U0GCR = 11;
中断;

//U0GCR |= 11;// 115、200 57、600 => 10 9600 => 0x08;
//U0BAUD = 216;// 57、600 => 216 9600 => 0x3B;//波特率设置为9600 bps。

//P0SEL |= 0x0C;//P0.2和 P0.3外设模式启用。
U0CSR |= csr_re;
IEN0 |= 0x04;// URX0IE = 1;

//U0DBUF = 0;//初始 ISR 泵。

isrCfg0.rxHead =0;isrCfg0.rxTail=0;

否则(端口= 1)

为 UART1外设选择 PERCFG &=~0x02;//AlertNative 1。

P0SEL |= BIT4 | BIT5;//P0.4和 P0.5外设模式被启用。

U1CSR |= 0x80;为 USART0选择了//UART 模式。


如果(速度= HAL_UART_BR_57600 ||
速度= HAL_UART_BR_115200)

U1BAUD = 216;

其他

U1BAUD = 59;

开关(速度)

案例 HAL_UART_BR_9600:
U1GCR = 8;
中断;
案例 HAL_UART_BR_19200:
U1GCR = 9;
中断;
案例 HAL_UART_BR_38400:
案例 HAL_UART_BR_57600:
U1GCR = 10;
中断;
默认值:
U1GCR = 11;
中断;

//U1CSR |= 0x80;// UART方式
//U1CSR |= csr_re;
//U1GCR |= 11;//115200 => 11;9600 => 8;//baud_e
//U1BAUD = 216;// 57600=>216;// 9600 => 0x3b;//波特率??57600
//UTX1IF = 1;
U1CSR |= csr_re;
IEN0 |= 0x08;// URX1IE = 1;

//U1DBUF = 0;//初始 ISR 泵。

//isrCfg1.rxHead =0;isrCfg1.rxTail=0;


halMcuWaitU(100人);

Ea = 1;

HAL_ISR_function (halUart0RxIsr、URX0_vector)

uint8 tmp = U0DBUF;

//dbg_printf ("%02x "、tmp);
isrCfg0.rxBuf[isrCfg0.rxTail++]= tmp;
isrCfg0.rxTail %=(HAL_UART_ISR_RX_MAX);