(简单串口程序)debug无法进入while循环

2019-07-21 04:05发布

本帖最后由 1208 于 2019-3-18 15:22 编辑

单片机用stm32F103C8T6,代码很简单,传感器是主动上传的,1s一个数据,通过usart1读取,中断是这样写的。1.44寸屏幕可以直接读取到传感器浓度值(或者USB转TLL串口助手也行),但是debug的话怎么也进不了wihle循环(或者说USART_RX_STA这个值一直就是4000不是8000 ),新手一枚,想知道是哪里错了,求大神指教。
QQ图片20190318141906.png QQ图片20190318141946.png


气体传感器.rar (349.91 KB, 下载次数: 12) 2019-3-18 14:25 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
nabla
1楼-- · 2019-07-23 00:08
nashui_sx 发表于 2019-3-19 16:28
USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);        //开启串口空闲IDEL中断

大神,我试了下这个代码,if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)这个语句一直进不去,USART_RX_BUF一直没数,麻烦您在看下哪的问题
秋天
2楼-- · 2019-07-23 02:33
谢谢分享
nabla
3楼-- · 2019-07-23 03:32
nashui_sx 发表于 2019-3-20 08:31

多谢大神,问题已解决,虽然debug时候USART_RX_BUF还是为空,但是串口确实能打印出来。
nashui_sx
4楼-- · 2019-07-23 04:06
 精彩回答 2  元偷偷看……
nabla
5楼-- · 2019-07-23 07:32
nashui_sx 发表于 2019-3-20 10:47
打印的传感器值不对?

打印的值是对的  我屏幕上也可以正常显示 只是我不太明白就是不调试时候它就能正常出数,调试时候USART_RX_BUF就没数据  怎么解释这种现象呢    新手表示不太理解  可能对你来说只是个小知识点
nashui_sx
6楼-- · 2019-07-23 09:36
nabla 发表于 2019-3-20 12:52
打印的值是对的  我屏幕上也可以正常显示 只是我不太明白就是不调试时候它就能正常出数,调试时候USART_R ...

空闲中断内或者主函数if( USART_RX_STA&0x8000) 内打断点  发送数据停在断点再看 就有数据了

一周热门 更多>