串口通信程序问题,求教

2019-08-15 16:06发布

直接上截图吧。 QQ截图20170731161422.png 这个是存收到的数据的这是主函数, QQ截图20170731161550.png 前面的部分是 对收到的数据进行处理的,通过串口助手发现程序仅能发送第一个字节,调试发现程序停在了第一个while这里,但是我这里的while是判断TXE是否非空,非空则继续发送。后面我改用了判断TC状态,发现还是只能发送第一个字节,然后程序也停在了while这儿。发过一帧数据后也没有再发数据,应该不可能是中断的问题吧。然后查阅了32中文参考手册,也没看出什么名堂来,实在是想不到办法了,来论坛请教一下大家
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
jokeym
1楼-- · 2019-08-15 17:14
你把112行的代码换成 while((USART1->SR&0X40)==0) ;
你再试试
很少用原子哥的函数、还是用寄存器试试吧
操作系统
2楼-- · 2019-08-15 22:03
STM32 uart ,建议 直接使用DMA 来发送.初始化OK后,发送全是自动化完成的.
您肯定会追问我.DMA是什么呀.DMA怎么发送呀之类的问题.请使用百度或者直接在本论坛搜索.应该有现成的资源可以学习.
jokeym
3楼-- · 2019-08-15 23:26
中断清了没
453947330
4楼-- · 2019-08-16 00:22
jokeym 发表于 2017-7-31 17:06
中断清了没

QQ截图20170731171625.png 清楚了呀
BJTT
5楼-- · 2019-08-16 06:17
 精彩回答 2  元偷偷看……
jokeym
6楼-- · 2019-08-16 06:50
还有你的111行和112行代码最好调换一下
得先等上一次数据发送完、才发送数据

一周热门 更多>