CN / EN
CN / EN

提问

获得支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

串口驱动问题 GR551x

372****com

2022-06-29 20:47

1.关于串口DMA,看默认配置,串口DMA发送时源地址是按照字节搬运,设置为按字搬运好像数据会错误,地址已经按照4字节对齐,并且长度也4字节对齐?

2.当发送完成时触发APP_UART_EVT_TX_CPLT事件时,是不是表示串口移位寄存器为空?我有个RS485,在收到该事件时将切换到接收状态,最后一个字节高4bit始终错误,需要加长一个字节才能正确

0收藏

0赞成

Darren

2022-06-30 11:09

您好:

1.串口的硬件fifo深度是128,宽度是8bit。如果使用WORD方式的DMA搬运,那理论上只会搬运最后8bit到fifo中,并且只会占用fifo的1个深度。

2.APP_UART_EVT_TX_CPLT事件一般只tx_fifo的数据发空了,但是并不能说明串口移位寄存器为空。如果想避免该情况发生,可以调用 while((HAL_IS_BIT_SET(p_uart->p_instance->LSR, LL_UART_LSR_TEMT) ? SET : RESET) == RESET); 来保证tx_fifo和移位寄存器均为空。如截图:


0条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注