这就是组成。
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);
}