查看: 224|回复: 4
打印 上一主题 下一主题

stm32 串口使能关闭导致程序死掉

[复制链接] qrcode

24

主题

30

帖子

88

积分

注册会员

Rank: 2

积分
88
楼主
跳转到指定楼层
发表于 2015-7-15 07:19 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32程序中,使用串口发送接收数据,PC端有个串口软件,每10ms间隔发送数据到stm32中,我可不可在程序中关闭中断使能呢,如USART_Cmd(USART1, DISABLE);想在stm32中接收一定数量数据后关闭串口使能,然后到一定时间间隔后再使能串口,不知道可不可以在接收数据的过程中将串口使能关闭;我尝试了下,关闭串口使能后程序重启了(带看门狗),这是为什么呢,有遇到过类似问题的吗,可以交流下
回复

使用道具 举报

0

主题

79

帖子

6

积分

新手上路

Rank: 1

积分
6
沙发
发表于 2015-7-15 09:21 PM | 只看该作者

这样做不好~

建议楼主弄个计数器,到一定的时间掉丢串口收到的数据;再过一段时间就重新接收

回复 支持 反对

使用道具 举报

0

主题

78

帖子

6

积分

新手上路

Rank: 1

积分
6
板凳
发表于 2015-7-15 09:48 PM | 只看该作者
关闭串口使能后程序重启,试试重新计算看门狗的超时时间,在合适的位置喂狗
回复 支持 反对

使用道具 举报

0

主题

70

帖子

8

积分

新手上路

Rank: 1

积分
8
地板
发表于 2015-7-16 10:12 AM | 只看该作者
我认为应该是可以这样做的,只是你没有注意自己的喂狗时间。另外不知道楼主为什么要这样做呢?
回复 支持 反对

使用道具 举报

0

主题

98

帖子

16

积分

新手上路

Rank: 1

积分
16
5#
发表于 2015-7-16 12:36 PM | 只看该作者
谢谢大家了,找到问题所在了,在我关闭串口1使能后,串口仍然会有数据发送,但是在发送时我这里有句话while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=0);然后就死这了,当时看门狗设置时间为1s,1s后就重启了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表