OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2819|回复: 3

遇到一个很奇怪的BUG

[复制链接]

72

主题

245

帖子

0

精华

高级会员

Rank: 4

积分
510
金钱
510
注册时间
2015-11-13
在线时间
131 小时
发表于 2019-1-26 11:06:56 | 显示全部楼层 |阅读模式
1金钱

这个是一个boot程序
int main(void) {    int32u n;
    n = RTC_ReadBackupRegister(BKP_1);  读取备份寄存器中的值
   if(n< 2) {
       进入APP程序;
    }

   初始化函数;

   RTC_WriteBackupRegister(BKP_1,0);  //对该寄存器清零

  for(;;) {
        boot升级程序函数;


  }
  当n在APP函数中被累计到2时,手动断电再上电 ,发现程序在main中由于n不小于2跳过了进APP程序,执行寄存器清零,却没进for循环中,而是n =0,又去执行了进APP程序,这是咋回事啊

   








}



最佳答案

查看完整内容[请看2#楼]

问题解决 只要在进main后适当加点延时就不会出现复位现象,个人怀疑是因为 断电上电是冷复位,这时候单片机内部外设状态不稳定,
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

245

帖子

0

精华

高级会员

Rank: 4

积分
510
金钱
510
注册时间
2015-11-13
在线时间
131 小时
 楼主| 发表于 2019-1-26 11:06:57 | 显示全部楼层
问题解决  只要在进main后适当加点延时就不会出现复位现象,个人怀疑是因为  断电上电是冷复位,这时候单片机内部外设状态不稳定,
回复

使用道具 举报

72

主题

245

帖子

0

精华

高级会员

Rank: 4

积分
510
金钱
510
注册时间
2015-11-13
在线时间
131 小时
 楼主| 发表于 2019-1-26 14:25:13 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-1-26 22:03:46 | 显示全部楼层
仿真找问题
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-1-26 22:03:47 | 显示全部楼层
仿真找问题
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-20 19:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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