打印
[单片机芯片]

CH32F207VCT6 USART1 dma 有bug?

[复制链接]
1183|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wxheky|  楼主 | 2022-12-5 14:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uart1 使用 PA9,PA10引脚,设定DMA1_CH5通道接收。经常会少收一个数据。程序已经按照官方例程修改了

对比uart4,同样的程序没有任何问题。

程序移植过stm32,国民技术n32g45x ,都是很稳定执行。

使用特权

评论回复
沙发
wxheky|  楼主 | 2022-12-5 16:36 | 只看该作者
波特率是 38400 7 E 1

使用特权

评论回复
板凳
wxheky|  楼主 | 2022-12-5 20:22 | 只看该作者
测试uart4,uart5正常,usart1不支持

使用特权

评论回复
地板
WCHTech2| | 2022-12-6 11:03 | 只看该作者
您好,这边测试串口1 DMA收发都是没有问题的,附件为测试例程,可以参考一下


CH32F207 串口1DMA.zip

4.94 MB

使用特权

评论回复
5
wxheky|  楼主 | 2022-12-6 16:12 | 只看该作者
WCHTech2 发表于 2022-12-6 11:03
您好,这边测试串口1 DMA收发都是没有问题的,附件为测试例程,可以参考一下

好的,我来拿例程测试一下看看

使用特权

评论回复
6
wxheky|  楼主 | 2022-12-6 16:40 | 只看该作者
WCHTech2 发表于 2022-12-6 11:03
您好,这边测试串口1 DMA收发都是没有问题的,附件为测试例程,可以参考一下

暂时完美接收,还是需要原厂支持。

使用特权

评论回复
7
wxheky|  楼主 | 2022-12-6 17:04 | 只看该作者
谢谢,应该是解决了。换了例程部分接收处理代码,问题解决,dma优先级也降低了不影响,原例程dma优先级改为DMA_Priority_Low也不影响

使用特权

评论回复
8
weifeng90| | 2022-12-6 19:17 | 只看该作者
那说明你的代码还是有问题啊,原厂的就没有问题。

使用特权

评论回复
9
wxheky|  楼主 | 2022-12-7 10:42 | 只看该作者
weifeng90 发表于 2022-12-6 19:17
那说明你的代码还是有问题啊,原厂的就没有问题。

uart的sr和dr  主流程里面不读取就好了,每家芯片不一样,有解决方案就可以了。测试1天,稳定

使用特权

评论回复
10
binbin0317| | 2022-12-8 08:04 | 只看该作者
wxheky 发表于 2022-12-7 10:42
uart的sr和dr  主流程里面不读取就好了,每家芯片不一样,有解决方案就可以了。测试1天,稳定 ...

其他MCU应该都有影响吧,至少STM32也是,读取DR就会将数据读出来,从而使状态寄存器发生变化。理论上一样会影响DMA,除非DMA优先级比CPU高,一直都是DMA把数据读出来。

使用特权

评论回复
11
wxheky|  楼主 | 2022-12-8 19:35 | 只看该作者
binbin0317 发表于 2022-12-8 08:04
其他MCU应该都有影响吧,至少STM32也是,读取DR就会将数据读出来,从而使状态寄存器发生变化。理论上一样 ...

批量实测cks32,stm32,at32,n32g45x
没这个问题
但这个问题不是问题,只要解决,改改代码,长时间测试一下就可以,国产越来越好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

50

帖子

1

粉丝