串口dma的使用
请问,使用uart0+dma的时候,可以通过打开或关闭dma通道来实现控制收发吗,即在使能串口和dma之后,在发送前打开dma发送通道,发送结束后关闭dma发送通道,而不是像例程里那样使能或失能dma来实现控制收发,我目前大体思路是在uart0和dma初始化的时候就enable tx,rx,dma,然后打开uart0接收超时中断,在中断中做数据处理,在发送数据前打开dma发送通道,把数据搬运到发送缓冲区,然后发送结束后关闭发送通道
请教一下,我配置好超时中断和dma之后,串口助手发送,debug模式下看数组里的值是没问题的,和我发送的一样,然后我用开发板给bc25模块发指令,正常来说会返回OK或者ERROR,现在我debug中看到的是如图红框圈的这个,然后串口助手中没有显示接收数组里的内容,这个是为什么
dma的指针在接收过程中会变动的,所以每次需要设置下。官方例程是最简单的,能保证运行起来。有什么想法,那就发挥自己的创造力去试吧。 问题解决了,是校验位的事,建议开发项目的时候这个玩意好好和上头沟通一下,就一个校验位耗了我四天时间,所有可能性都试了一遍,数据格式转来转去,最后就一个简单的配置问题,所以各位开发时一定要注意这些细节,
比如dma,例程给的就是最简单的结构,然后这个帖子的整体想法也经过验证可以使用
有时间会贴代码上来,希望不足的地方,大佬们多指正 顾博文 发表于 2022-7-18 13:42
dma的指针在接收过程中会变动的,所以每次需要设置下。官方例程是最简单的,能保证运行起来。有什么想法, ...
请问一下DMA指针在接收过程中会变动具体是怎么变动呢? 龘渊 发表于 2022-8-8 17:30
请问一下DMA指针在接收过程中会变动具体是怎么变动呢?
会 龘渊 发表于 2022-8-8 17:30
请问一下DMA指针在接收过程中会变动具体是怎么变动呢?
DMA指针会在接收过程中自加,建议每次进中断之后重新配置DMA通道,
页:
[1]