STM32多串口同时工作

2019-08-13 21:26发布

现有两个超声波模块,模块以串口方式输出距离,我要用STM32两个串口接收两个模块的距离数据,用一个STM32怎么避免相互干扰?另外两个串口接收没有顺序,请大神出招,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
飞羽无痕
1楼-- · 2019-08-13 23:49
 精彩回答 2  元偷偷看……
LOGO
2楼-- · 2019-08-14 04:09
飞羽无痕 发表于 2017-10-5 21:40
每个串口都是独立工作的,DR寄存器也是每个串口都有自己的,根本不存在什么干扰之说

串口2正在接收的时候串口3又要接收,把串口2给中断了,等到串口3接收结束,串口2所接收的数据就不是之前正在接收的数据了,这就造成了接收数据出现错误。数据是实时传输的,不是固定不变的。
cromarti
3楼-- · 2019-08-14 08:50
LOGO 发表于 2017-10-6 10:36
串口2正在接收的时候串口3又要接收,把串口2给中断了,等到串口3接收结束,串口2所接收的数据就不是之前 ...

优先级一样的时候不会打断的,中断里面少放点程序只保存就可以了
LOGO
4楼-- · 2019-08-14 11:52
cromarti 发表于 2017-10-6 13:51
优先级一样的时候不会打断的,中断里面少放点程序只保存就可以了

我试试看,谢谢。主要问题是要进行实时接收,两个接收的时序不定,麻烦就麻烦在这里
飞羽无痕
5楼-- · 2019-08-14 15:01
LOGO 发表于 2017-10-6 10:36
串口2正在接收的时候串口3又要接收,把串口2给中断了,等到串口3接收结束,串口2所接收的数据就不是之前 ...

给你介绍一种方法,用串口的总线空闲中断+DMA的方式可以大大减少中断次数,提高传输效率
LOGO
6楼-- · 2019-08-14 19:41
 精彩回答 2  元偷偷看……

一周热门 更多>