独闷闷网

 找回密码
 立即注册
搜索
查看: 2635|回复: 2
收起左侧

[求助] 单片机莫名其妙的复位

[复制链接]
发表于 2015-4-5 01:33:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 又一个暑假 于 2015-4-5 12:41 编辑

有2个不同任务的函数 如果两个同时调用就会导致单片机复位 这是什么原因,如果注释掉其中一个就不会
坚鸿-深圳(1662007561) 7:55:49

@又一个暑假-沪
又一个暑假-沪:有2个不同任务的函数 如果两个同时调用就会导致单片机复位 这是什么原因呢


鸿哥提问:什么叫同时调用?有同时吗?如果是分别在主程序和中断里调用,有可能是共同改变和判断同一个全局变量。



坚鸿-深圳(1662007561) 7:58:36

@又一个暑假-沪 还有一种情况,主程序与中断程序不能共同调用同一个涵数的。
坚鸿-深圳(1662007561) 8:00:52

@又一个暑假-沪
你是不是用了嵌入式系统,在2个不同任务的函数里,也是不能调用同一个涵数的。

回鸿哥:我提问的没描述清楚,我调用的函数都是在主函数,如:
while(1)
{
ReadKey();
Key_Service();
}

如果注释掉一个函数功能都正常,就是2个都没注释就会复位,程序中没用定时器、中断、看门狗。

乐于分享,勇于质疑!
发表于 2015-4-5 18:20:23 | 显示全部楼层
这个现象确实很奇怪。我也想不出是什么原因。但是我建议你把这两个函数合并成一个函数,再测试,如果还会复位,你就逐行删除代码,直到不会复位为止,也许这样可以帮你找到是哪行代码导致这个问题。
乐于分享,勇于质疑!
 楼主| 发表于 2015-4-6 00:14:14 | 显示全部楼层
本帖最后由 又一个暑假 于 2015-4-6 00:17 编辑
jianhong_wu 发表于 2015-4-5 18:20
这个现象确实很奇怪。我也想不出是什么原因。但是我建议你把这两个函数合并成一个函数,再测试,如果还会复 ...

鸿哥我找到毛病了,是数组定义的长度太短.而且Keil没警告。我这个数组是用来存放串口要发送的数据,如果太短还可能出现串口发送乱码
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2021-9-20 01:23 , Processed in 0.165579 second(s), 17 queries .

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