CN / EN
CN / EN

提问

获得支持

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

关于5515串口buffer大小 GR551x

Angelo

2022-01-07 18:33

你好!

我现在遇到一个问题,我们在用串口和一个通信模组通信,之前我们设置的uart_buffer.tx_buf_size =2048个字节是正常能通信的,但是我们把2048变大到4096以后,串口通信就不稳定了。请问这是本身5515串口buffer的限制吗?请问最大能到多少个字节呢?

谢谢!

0收藏

0赞成

Barton

2022-01-10 16:31

你好,

uart初始化时,tx_buf的大小是可以自由定义的,理论上只要RAM足够,是没有限制的;

此buffer的作用,是在异步发送时对数据进行缓存,初始化时会将此buffer初始化为循环队列结构,当buffer中的数据发送完成,会进入用户的回调函数,事件为TX_CPLT。

正常来说,只要初始化uart时,实际分配的tx_buf空间与配置的tx_buf_size一致,那么单纯的增大此buffer空间是不会造成通信不稳定的情况,建议从以下几个方向调试分析:

1、初始化时tx_buf是否真实的分配了4096字节;

2、是否有频繁的异步发送调用(app_uart_transmit_async),写入fifo的数据量高于实际串口发送的速率,导致tx_buf溢出,最终导致发送数据的丢失;

3、如果uart配置的是中断方式,可以尝试使用DMA方式;

0条评论

0赞成

0收藏

您的评论

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

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

扫描关注公众号

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