stm32 串口传输问题

2019-07-20 20:58发布

stm32 f407串口传输

同一个串口  我既用了printf函数控制串口传输,我又用了DMA控制串口传输。(至于原因就是因为printf函数输出比较短的字符串,DMA传输很长的字符串,而且系统对时间要求也比较严格,所以长的字符串就用DMA控制)

我怎样保证串口发送的字符串和DMA控制发送的字符串不搅合在一起呢。比如说DMA控制串口发送123456,printf函数发送abcd,我怎么样控制才不会输出123abcd456这种呢。

有提示说用互锁的方式实现,请问下怎样加互锁的方式呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-07-21 00:51
你只需要在DMA发送期间,不让printf发送就可以了。说白了就是DMA发送的时候,你都等待DMA发送完成(如果有中断,则中断服务函数里面,不能printf),再去执行其他代码,就OK了。
笨鸟先飞鱼
2楼-- · 2019-07-21 01:07
正点原子 发表于 2016-8-3 17:42
你只需要在DMA发送期间,不让printf发送就可以了。说白了就是DMA发送的时候,你都等待DMA发送完成(如果有 ...

谢谢原子哥。