wxheky 发表于 2022-12-5 14:52

CH32F207VCT6 USART1 dma 有bug?

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收发都是没有问题的,附件为测试例程,可以参考一下


wxheky 发表于 2022-12-6 16:12

WCHTech2 发表于 2022-12-6 11:03
您好,这边测试串口1 DMA收发都是没有问题的,附件为测试例程,可以参考一下




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

wxheky 发表于 2022-12-6 16:40

WCHTech2 发表于 2022-12-6 11:03
您好,这边测试串口1 DMA收发都是没有问题的,附件为测试例程,可以参考一下




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

wxheky 发表于 2022-12-6 17:04

谢谢,应该是解决了。换了例程部分接收处理代码,问题解决,dma优先级也降低了不影响,原例程dma优先级改为DMA_Priority_Low也不影响

weifeng90 发表于 2022-12-6 19:17

那说明你的代码还是有问题啊,原厂的就没有问题。

wxheky 发表于 2022-12-7 10:42

weifeng90 发表于 2022-12-6 19:17
那说明你的代码还是有问题啊,原厂的就没有问题。

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

binbin0317 发表于 2022-12-8 08:04

wxheky 发表于 2022-12-7 10:42
uart的sr和dr主流程里面不读取就好了,每家芯片不一样,有解决方案就可以了。测试1天,稳定 ...

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

wxheky 发表于 2022-12-8 19:35

binbin0317 发表于 2022-12-8 08:04
其他MCU应该都有影响吧,至少STM32也是,读取DR就会将数据读出来,从而使状态寄存器发生变化。理论上一样 ...

批量实测cks32,stm32,at32,n32g45x
没这个问题
但这个问题不是问题,只要解决,改改代码,长时间测试一下就可以,国产越来越好
页: [1]
查看完整版本: CH32F207VCT6 USART1 dma 有bug?