STM32的电源复位和引脚复位

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

具体现象如下:

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模块儿的问题啊,在开发板上测试也不行,要不就是程序的问题,初始化设置有问题

时间: 2024-10-12 03:58:48

STM32的电源复位和引脚复位的相关文章

STM32 KEIL不能输入仿真引脚端口error 65: access violation at 0x40021000 : no 'read' permission

使用MDK自己创建一个STM32F103ZE核的项目 加入源码后编译,正常,在线仿真单步执行出现如下问题 error 65: access violation at 0x40021000 : no 'read' permission 发现是Debug里面的设置有问题 http://www.cnblogs.com/xiaobo-Linux/ 主要是下面2项设置 Dialog DLL默认是DCM3.DLL Parameter默认是-pCM3 应改为 Dialog DLL默认是DARMSTM.DLL

FPGA中的同步复位与异步复位

1.异步复位 always @ ( posedge sclk or negedge s_rst_n ) if ( !s_rst_n ) d_out <= 1'b0; else d_out <= a; 综合出来的RTL视图如下所示: 从图中可以看到寄存器d_out有一个低电平有效的复位信号s_rst_n端口,即使设计是高电平复位,实际综合后也会把异步复位信号反向后接到这个CLRN端: 2.同步复位 always @ ( posedge sclk ) if ( !s_rst_n ) d_out &

同步复位和异步复位二者各自的优缺点是什么呢?

同步复位:当时钟上升沿检测到复位信号,执行复位操作(有效的时钟沿是前提).always @ ( posedge clk ); 优点: a.有利于仿真器的仿真:b.可以使所设计的系统成为 100% 的同步时序电路,有利于时序分析,而且可综合出较高的 Fmax:c.由于只在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的复位毛刺. 缺点: a.复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务.同时还要考虑诸如 clk skew .组合逻辑路径延时 .复位延时等因素(所以复位信

FPGA基础之同步复位与异步复位

1.异步复位 //异步复位 always @ (posedge clk or negedge i_rst) if (!i_rst) begin a <= 1'b0; end else begin a <= 1'b1; end 2.同步复位 //同步复位 always @ (posedge clk ) if (!i_rst) begin b <= 1'b0; end else begin b <= 1'b1; end RTL视图 总结: 同步复位  缺点:占用了更多的逻辑资源,优点:

STM32微处理器家族 &nbsp; Flash,引脚图谱

介绍意法半导体公司出售的STM32系列微处理器 Microcontrollers STM32 32-bit ARM Cortex MCUs STM32F1 Series STM32 F1 series of mainstream MCUs ST's STM32 F1 series of mainstream MCUs covers the needs of a large variety of applications in the industrial, medical and consume

第43章 RTC—实时时钟

第43章     RTC-实时时钟 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 43.1 RTC简介 RTC-real time clock,实时时钟,主要包含日历.闹钟和自动唤醒这三部分的功能,其中的日历功能我们使用的最多.日历包含两个32bit的时间寄存器,可直接输出时分秒,星期.月.日.年.比起F103系列的RTC只能输出秒中断,剩下的其他时间需要软件来实现,429的

STM32的复位和时钟控制(RCC)

1.1          复位 参考<STM32参考手册> 1.2          stm32的时钟系统 stm32时钟树: 当HSI被用于作为PLL时钟的输入时,SYSCLK的最大频率不得超过64MHz stm32有以下四种时钟源(内部时钟源起振较快,刚上电时默认使用内部时钟源,外部时钟源叫稳定精确): 高速外部时钟(HSE):外部晶振产生8MHz的时钟,为系统提供更为精确的时钟. 高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz. 低速外部时钟(LSE):外部晶振产生32.7

【STM32H7教程】第14章 STM32H7的电源,复位和时钟系统

完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第14章       STM32H7的电源,复位和时钟系统 本章教程继续为大家讲解学习STM32H7的必备知识点电源,复位和时钟系统.掌握这三方面的知识点对后面的学习大有裨益. 14.1 初学者重要提示 14.2 电源 14.3 硬件复位 14.4 软件复位 14.5 RCC时钟控制 14.6 总结 14.1 初学者重要提示 1.  电源管理部分涉及到的各种低功

STM32 软件复位 3.5/早期库/自己实现

STM32软件复位(基于库文件V3.5) 基于V3.5 库实现 void SoftReset(void){__set_FAULTMASK(1);      // 关闭所有中端NVIC_SystemReset();// 复位} 在官方软件库的 core_cm3.h 文件里 直接提供了 系统复位的函数   static __INLINE void NVIC_SystemReset(void){  SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)