#ch32V307

配置四个串口测试单独接收和发送数据都正常,四个串口都是中断接收和中断发送的方式;但是遇到问题是将串口一发送接到串口二接收上,串口二发送接到串口三的接收,串口……接收的数据不正常;四个口循环数据出现错误,只有收到两个字节头和尾,这个问题有参考例子解决吗

您好,在CH32V307 EVT有串口2和串口3之间进行收发的例程,采用中断的方式,可以参考一下。CH32V307 EVT下载链接如下:

/downloads/CH32V307EVT_ZIP.html 

image.png




这个例程不是采用中断的方式发送的,就是使用while循环等待接收数据,还是根据已有的数据长度在等待,没什么参考的价值


您好,附件为根据你需求写的一个简单的串口1中断发送,串口2中断接收之后中断发送的例程,可以参考一下。需要注意,初始化时最好不要启用TXE中断,建议在接收完成后发送数据时启用TXE中断,如下图,关于一开始发送时可在初始化完成后启用TXE中断,具体可参考附件例程程序处理,此处在中断函数中加了打印,是为了观察现象确认结果,实际使用中不建议加打印。后续若有问题,建议通过邮箱(lzs@wch.cn)和我沟通。

icon_rar.gifCH32V307 串口中断发送与接收.zip

image.png



我的代码就是接收数据完成之后,才开启发送中断,发送完成后又关掉发送中断;现在的问题是如果四个串口同时接收到数据,每个串口不能发送正常的数据,会出现数据丢失



您好,已邮件回复你,请注意查收,后续问题沟通可继续通过邮箱进行沟通


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