TI中文支持网
TI专业的中文技术问题搜集分享网站

关于CC2541 uart驱动的问题

看hal里面的UART DMA驱动如下定义:

#define HAL_UART_DMA_NEW_RX_BYTE(IDX)  ((uint8)DMA_PAD == HI_UINT16(dmaCfg.rxBuf[(IDX)]))
#define HAL_UART_DMA_GET_RX_BYTE(IDX)  (*(volatile uint8 *)(dmaCfg.rxBuf+(IDX)))
#define HAL_UART_DMA_CLR_RX_BYTE(IDX)  (dmaCfg.rxBuf[(IDX)] = BUILD_UINT16(0, (DMA_PAD ^ 0xFF)))

检测有没有RX到数据是通过判断rxBuf的高字节是否等于DMA_PAD,那么请问,这个高字节是DMA在接收到8bit数据后自动将高字节异或吗?

因为看到清空这个高字节时是赋值了一个DMA_PAD^0xFF。如果不是DMA自动将高字节进行异或,那这种宏写法的意图是什么?

geniusgogo:

回复 Yue TANG:

懂了,谢谢哈

Yue TANG:

回复 geniusgogo:

如果有帮助,请确认一下。

赞(0)
未经允许不得转载:TI中文支持网 » 关于CC2541 uart驱动的问题
分享到: 更多 (0)