CC2530 1200波特率 偶校验问题
时间:12-22
整理:3721RD
点击:
TI 工程师:
您好~
我在使用CC2530 UART时碰到以下情况,请帮忙分析解决以下:
使用 CC2530 UART1(alt2),即 P1.6--TX P1.7--RX,使用 Z-stack 2.5.1a, DMA方式 (HAL_UART_DMA = 2),禁止流控制
我想要使用 波特率1200,8E1 (偶校验)
因为Z-stack中预设的波特率最小为2400,所以我手动添加 1200的设置,设置
UxBAUD = 59;
UxGCR = 5;
UxUCR = UCR_STOP | UCR_PARITY | UCR_D9; //即UxUCR = 0x2A
计算得到波特率为 1201.6296 Error = 0.1358%
问题来了:在我实际UART通信时,偶校验位经常会出现错误,使用逻辑分析仪截图如下:(我也用示波器看过,排除逻辑分析仪出错的可能)
我发送一串数据 68 AA AA AA AA AA AA 68 01 02 43 C3 D5 16
0xAA 和0xC3 出现校验位错误,其他数据正常
请您帮忙分析一下出错的可能,或者指出我有设置错误的地方,非常感谢
自己找到原因了,在使用奇偶校验时需要设置数据为9位数据格式:
即设置 UxUCR = UCR_STOP | UCR_PARITY | UCR_D9 | UCR_BIT9;