求助:串口3接收数据,能进入中断,但是中断处理后数据为空!!!

2019-07-20 10:54发布

     具体想实现的动能是这样的:数据流经过GPRS模块(通过串口3与STM32相连接),STM32接收数据后,处理数据 并 将接收到的数据 再通过 串口1发送到电脑端。。但是问题出现了,程序能进入串口3的中断程序,而通过串口1输出的数据是 空的。。
学业不精,我把调试的一些结果,截图给大家。希望大家能帮我看看,顺道指点指点,不胜感激!!!

----------------------------------------------------------------------------串口3中断·处理函数
串口中断.png

这里主要是通过定时器7,如果两次数据字节 时间间隔 大于100ms,则判定接收结束,将完成标志位写 1 。期间记录接收的数据到USART3_RX_BUF[]、长度


------------------------------------------------------------------------处理函数
串口3数据处理.png

对串口3传来的数据,进行处理  并将接收到的数据 再通过 串口1发送到电脑端。问题如下:
[img]file:///C:UsersW_J_FDocumentsTencent Files290382704ImageGroupF2D@U]$IG06SXED~O]1[OAU.png[/img] F2D@U]$IG06SXED~O]1[OAU.png

QQ截图20171118203652.png          



PS:在单片机与GPRS通信的时候,用的的也是串口3.所以配置方面应该没有什么问题(个人认为。)估计是串口3处理,程序哪里出了问题,怎么也找不出原因...
问题还是:串口3接收数据,能进入中断,但是中断处理后数据为空!!!


由于这个项目还没有做好,代码会比较乱。这里主要还是为了解决问题。还望大家见谅!!等到项目搞好后,我会把整利好的开放出来。
[img]file:///C:UsersW_J_FDocumentsTencent Files290382704ImageGroupF2D@U]$IG06SXED~O]1[OAU.png[/img]

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
王建峰
1楼-- · 2019-07-20 13:16
找到原因了,是我自己没有把程序看明白。有一处逻辑没有理清,仿真调试一下看出来了。 QQ截图20171119093551.png
原因是我把这条语句放在 判断区域外了(这样就会使标志变量不断被清0),导致数组长度一直是0,就没有吧数组的值打印出来。
最后,感谢一下原子哥的教诲!!
正点原子
2楼-- · 2019-07-20 15:42
参考我们扩展例程吧。
这个串口3的问题,论坛貌似有很多人问,这几天。
我也是无语了,这么简单的东西搞不定,说明基础不行,回去好好继续看教程。
王建峰
3楼-- · 2019-07-20 17:37
 精彩回答 2  元偷偷看……
炫色康康
4楼-- · 2019-07-20 21:51
学习了

一周热门 更多>