Angelo
你好!
我现在遇到一个问题,我们在用串口和一个通信模组通信,之前我们设置的uart_buffer.tx_buf_size =2048个字节是正常能通信的,但是我们把2048变大到4096以后,串口通信就不稳定了。请问这是本身5515串口buffer的限制吗?请问最大能到多少个字节呢?
谢谢!
Barton
你好,
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方式;
打开微信,使用“扫一扫”即可关注