求助:CH32F203RCT6 八串口通讯,串口数据解析和发送数据

我的需求是:将CH32F203RCT6作为一个串口中转的MCU

UART 1 : 连接电脑通讯,用于测试

UART 2 : 将采集的数据(UART  4,5,6,7,8)整合后----发送到串口屏,用于显示

UART 3 : 连接wifi模组(AT指令),将指令和采集的数据(UART  4,5,6,7,8)整合后----发送到服务器,用于后台数据分析

UART  4,5,6,7,8 : 持续接收传感器的采集数据



问题:目前我的代码基于freertos系统,是用UART中断的方式,持续采集UART  4,5,6,7,8,每隔10ms将数据发送到UART2

1、经测试,这种用中断接收的方法,加上死循环等待(while( USART_GetFlagStatus( USART2, USART_FLAG_TXE ) == RESET ) {}),速度太快会出现丢包

2、能否提供已经做好的八串口通讯的代码示例,作为参考?

3、由于用到了AT指令模组,能否提供个AT指令接收解析的代码示例,作为参考?


我的邮箱:个人信息保护,已隐藏


附件上是我目前代码,麻烦给点建议,谢谢

icon_rar.gifFreeRTOS_Core_1.zip


微信截图_20231217135159.png微信截图_20231217135343.png

这是我UART  4,5,6,7,8 整合后的数据图


您好,关于8串口通讯的代码示例,目前在EVT中有个8串口服务器的例程,可以简单参考一下;目前没有AT指令解析的例程;关于使用中断接收,每个串口的中断优先级建议不要全部配置成一样,配置不同的优先级,此外建议直接通过对应中断标志位进行接收或发送,若数据较多且对速度有要求,建议加上DMA和缓冲区,8串口服务器例程中使用了DMA,可以简单参考一下。此外,你的附件工程不完整,建议将SRC文件夹包含在内,否则工程缺少相关库文件等,无法编译。后续若有问题,可邮箱(lzs@wch.cn)和我继续沟通。


只有登录才能回复,可以选择微信账号登录