你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于stm32f0的Usart的接受发送调试

[复制链接]
alisa123 提问时间:2016-5-22 22:53 /
调试stm32f0的Usart时出现问题,按照我的理解,如果通过PC和stm32f030的开发板串口通信时,在初始化中开启接收中断,程序全速运行,当接受到PC上的串口调试工具发下来的数据后进入接收中断的,可是不知为什么,我在PC的串口调试软件中还没有发数据,就进入接收中断了?这是为什么?求高手指点,谢谢!
收藏 评论16 发布时间:2016-5-22 22:53

举报

16个回答
jtc_88 回答时间:2016-5-23 08:53:39
在 所有中断的设置过程中,记好,最好 先清除中断标志位再使能中断,我记不清是否是串口了,反正中断类似情况我被虐过好几次,现在乖乖的 所有的中断使能前 清除中断标志位!!

评分

参与人数 1ST金币 +2 收起 理由
肖久 + 2

查看全部评分

mrclp 回答时间:2016-5-23 09:11:14
本帖最后由 mrclp 于 2016-5-23 09:15 编辑

Like this...
USART_ClearITPendingBit(USART1, USART_IT_TC);
USART_ITConfig(USART1, USART_IT_TC, ENABLE);
USART_Cmd(USART1, ENABLE);

评分

参与人数 1ST金币 +2 收起 理由
肖久 + 2

查看全部评分

huaiqiao 回答时间:2016-5-23 09:13:52
首先你要明确下,你的初始化的程序中是否有使能串口中断,如果是能进串口中断函数的话,应该是使能了串口中断。在使能串口中断的时候,需要清一下中断标志。

评分

参与人数 1ST金币 +2 收起 理由
肖久 + 2

查看全部评分

leolzf0000 回答时间:2016-5-23 09:26:04
我也遇到过类似的问题,好好研究一下手册
Dylan疾风闪电 回答时间:2016-5-23 10:21:28
首先,在串口中断中设置断点。
查看中断接收到的是什么数据?
如果是0x00,那么除了STM32编程问题外,还要考虑转换器、串口助手等因素。遇到0x00,可以先从网上下载个其它的串口助手试试。

评分

参与人数 1ST金币 +2 收起 理由
肖久 + 2

查看全部评分

馕边子 回答时间:2016-5-23 11:05:20
先清除中断标志位再使能中断,等待接收,查询内容

评分

参与人数 1ST金币 +2 收起 理由
肖久 + 2

查看全部评分

yuazhang 回答时间:2016-5-23 12:43:53
应该是设置问题吧。把所有的设置检查一遍吧。
power568 回答时间:2016-5-23 13:54:12
如果设备处于接收状态的话,上电后是有可能进入接收中断一两次的,但是如果一直进的话就可能是硬件处理不对或者软件对应的中断没有正确清除...

评分

参与人数 1ST金币 +2 收起 理由
肖久 + 2

查看全部评分

lzts 回答时间:2016-5-23 23:13:41
在中断程序要检测接收完成标志(中间是_FLAG_R??这个), 检测到取数据清中断标志就OK了. 只检测接收寄存器(中间是_IT_R??这个)非空是会总进中断的. 因数接收还未完成,接收寄存器总是非空的, 这样会总进中断的(假死)

评分

参与人数 1ST金币 +2 收起 理由
肖久 + 2

查看全部评分

12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版