码迷,mamicode.com
首页 > 其他好文 > 详细

STM32的电源复位和引脚复位

时间:2015-02-04 12:41:32      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

在调试程序的时候,发现仿真的时候程序一切运行正常,当重新上电后,程序运行不正常

具体现象如下:

1、确定是进入while(1)了,因为有程序运行的秒闪灯在闪烁

2、应该是MCU无法正常收到的24L01的命令(无法驱动4094片子的继电器动作)

3、当手动把复位引脚的电平拉低后,程序便运行正常了

调试方法如下:

1、怀疑是硬件复位电路的问题,但是确实是普通的阻容复位,没看出来多大的问题

2、用软件复位,上电运行第一次先进行软件复位,第二次正常运行,不知道怎么设置标志位

  系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器

  @1、备份区域中的寄存器

1       if(BKP->DR1!=0X5050)
2     {
3         SCB->AIRCR = (u32)0x05FA0000 | (u32)0x04;
4         BKP->DR1 = 0X5050;
5     }

  备份区域中的寄存器在没有电池供电的情况下,软件复位后,寄存器的值仍然会丢

  @2、复位除时钟控制寄存器CSR中的复位标志 

1     if( (RCC->CSR >> 28) == 0 )
2     {    
3         SCB->AIRCR = (u32)0x05FA0000 | (u32)0x04;
4     }

 

  确实能软件复位了,但是没起到应有的效果

3、有没有可能是无线模块的设置问题

4、由STM32内部复位电路可知,电源复位和软件复位

技术分享

 

这个问题确实很困惑,望高手指点啊 。。。。。。。

是不是很有可能是24L01模块儿的问题啊,在开发板上测试也不行,要不就是程序的问题,初始化设置有问题

 

STM32的电源复位和引脚复位

标签:

原文地址:http://www.cnblogs.com/Iamchritian--forthegloryofGod/p/4270217.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!