STM32的DMA串口循环模式如何设置发送周期?

把STM32的DMA设置成循环模式,让它通过串口循环往外发送数据,请问循环发送的周期怎么设置?例如要循环30ms发送一次数据,用循环模式怎么设置?降低波特率是可行的,能把... 把STM32的DMA设置成循环模式,让它通过串口循环往外发送数据,请问循环发送的周期怎么设置?例如要循环30ms发送一次数据,用循环模式怎么设置?
降低波特率是可行的,能把循环传输速率降低,但是能用什么方法可以把传输速度定在30ms传输一次吗?
展开
 我来答
35mickey
2017-03-14 · TA获得超过106个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:63.2万
展开全部

定时发送数据建议设置成Normal模式。

以下是个人对Circular模式和Normal模式的理解:

Circular:开发者只需设置好发送缓冲区的大小,之后往缓冲区内扔数据,不必考虑发送的时机和因为串口速度问题导致的数据冲突,相当于“流”的效果。

Normal:开发者可以自己选择发送的时机,但时间间隔必须大于上一次数据的发送时间(期间CPU可以干别的事),否则会数据冲突。

所以你可以在30ms定时器中断中单次发送数据(因为只是往寄存器写数据,占用不了太多时间)。下面是我的单次发送的函数:

迪凯特科技(北京)有限公司
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式