关于STM32F4XX的485通信中断接收的问题

2019-07-21 05:22发布

关于STM32F4XX的485通信中断接收的问题,数据采用应答模式,就是上位机传个控制信号来,将下位机采集到的数据传给上位机。。。。。。。。。。

发送数据的函数如下:

接收数据的函数如下:
中断接收程序如下:



现在出现了一个很奇怪的问题:

我要是把上图中的 2 给屏蔽掉了,下位机就只能接收到第一次中断,以后上位机的中断就很难接收到了,大部分中断都丢了。。。

或者我将上图中的 1 改成后面的 GetData = USART1->DR;就正常了。。。。

请问大侠们这是神马原因??????











友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
正点原子
1楼-- · 2019-07-21 10:16
STM32的RS485一直工作在发送模式,怎么能接受呢?
yougen1314
2楼-- · 2019-07-21 15:19
回复【2楼】正点原子:
---------------------------------

一直工作在发送模式???求详解。。。。。。。。。。。。

按照这个程序,如果不改任何地方是没问题的:上位机发送过来,下位机中断接收,然后将接收到的数据重新发送出去。。。这个可以是实现,完全正常。

但是要是不发送出去的话(将途中的红 {MOD}标记的函数2屏蔽掉),就只能中断接收一次,接下来的中断就接收不了了。。。。不知道原子大哥懂我的意思了不?????

还有,要是不发送出去的话,我将图中的红 {MOD}标记的函数 1 改成 GetData = USART1->DR就可以正常中断发送了。。。这个问题很奇怪。。。。。。。。。。
正点原子
3楼-- · 2019-07-21 18:21
回复【3楼】yougen1314:
---------------------------------
你在仔细分析下,如果GetByte之后,你的模式就一直是TX模式了...还接个球...
yougen1314
4楼-- · 2019-07-22 00:18



问题已经找到了,把上面这个接收控制端的RX_485和TX_485屏蔽掉就可以了。。。。。。。。。。但是为什么这两个东西会让程序不能进入第二次中断呢??????
这两个东西是


真搞不懂。。。。。。。。。。。。。。
yougen1314
5楼-- · 2019-07-22 03:24
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-22 07:38
因为你第一次进入就把模式给切换了,后面就没法进入了。

一周热门 更多>