stm32在SRAM中调试部分中断不响应的问题

stm32在SRAM中调试部分中断不响应的问题

ID:37691810

大小:107.00 KB

页数:8页

时间:2019-05-28

stm32在SRAM中调试部分中断不响应的问题_第1页
stm32在SRAM中调试部分中断不响应的问题_第2页
stm32在SRAM中调试部分中断不响应的问题_第3页
stm32在SRAM中调试部分中断不响应的问题_第4页
stm32在SRAM中调试部分中断不响应的问题_第5页
资源描述:

《stm32在SRAM中调试部分中断不响应的问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、stm32在SRAM中调试部分中断不响应的问题  因为stm32在flash区擦写的次数有限,所以我选择在sram中调试,SRAM擦除次数无限次,不过掉电代码就消失。代码放在SRAM中,对于我们调试是非常有帮助的。(我用的是原子的开发板)    最近这几天发现,在SRAM中调试,部分中断不响应的问题,比如RTC秒中断,明明使能了秒中断,可是总是卡在某个地方不动,然后怎么也进入不了中断。下面是我的代码。结合代码说明问题吧。 rtc.h文件中代码 #ifndef__RTC_H#define__RTC_Htypedef

2、struct{ u8m; u8h; u8s;}calendar;externcalendarrl;externu8tim_bz;u8RTC_Init(void);#endifrtc.c文件中代码#include"sys.h"#include"delay.h"#include"rtc.h"u8tim_bz=0;calendarrl;u8RTC_Init(void){ u8temp=0; if(BKP->DR1!=0X5050)//检测是不是第一次配置,后面会有向BKP->DR1写数据的语句 {  //1,使能电源时

3、钟和备份区域时钟  RCC->APB1ENR

4、=1<<28;//电源接口时钟使能  RCC->APB1ENR

5、=1<<27;//备份接口时钟使能  //2,取消备份区域写保护,需要向备份区域写  //一个字节来标记时钟已经配置过了,避免每次复位启动  PWR->CR

6、=1<<8;//取消后备区域的写保护    //3,复位备份区域,开启外部低速振荡器  RCC->BDCR

7、=1<<16;//备份域软件复位  RCC->BDCR&=~(1<<16);//备份域软件复位清,因为备份域软件复位要由软件清除,且不能一直复

8、位。   RCC->BDCR

9、=1<<0;//外部低速时钟使能  while((!(RCC->BDCR&0X02))&&temp<250)//判断rtc外部低速振荡器是否就绪  {   temp++;   delay_ms(10);  }  if(temp>=250)return1;//初始化失败,外部晶振有问题  //4,选择RTC时钟源并使能  RCC->BDCR

10、=1<<8;//LSE振荡器作为rtc时钟  RCC->BDCR

11、=1<<15;//RTC时钟使能  while(!(RTC->CRL&(1<<5

12、)));//等待rtc写操作完成  while(!(RTC->CRL&(1<<3)));//等待RTC寄存器和APB1接口同步  RTC->CRH

13、=0x01;//允许秒中断  while(!(RTC->CRL&(1<<5)));//等待rtc写操作完成  RTC->CRL

14、=1<<4;//允许配置RTC寄存器  RTC->PRLH=0x0000;  RTC->PRLL

15、=32767;//设置RTC时钟频率为1hz  RTC->CNTL=0x0005;  RTC->CNTH=0X0000;  RTC->CRL&=

16、~(1<<4);//配置更新  while(!(RTC->CRL&(1<<5)));//等待rtc写操作完成  RTC->CRL&=~(1<<5);//rtc操作关闭  BKP->DR1=0X5050; } else {  while(!(RTC->CRL&(1<<3)));//等待RTC寄存器和APB1接口同步  RTC->CRH

17、=0x01;//允许秒中断  while(!(RTC->CRL&(1<<5)));//等待rtc写操作完成   } MY_NVIC_Init(0,0,RTC_IRQn,2);//设置

18、中断 return0;}voidRTC_IRQHandler(void){ if(RTC->CRL&0X01) {  tim_bz=1;//进入中断标志,等下判断是否发生中断  RTC->CRL&=~(1<<0);//清除秒标志  while(!(RTC->CRL&(1<<5)));//等待rtc写操作完成    }}  主函数代码#include"sys.h"#include"usart.h"  #include"delay.h" #include"led.h"#include"beep.h"   #inclu

19、de"key.h"   #include"exti.h"   #include"wdg.h" #include"timer.h"    #include"tpad.h"    #include"lcd.h"#include"rtc.h"    intmain(void){  u32TimeData=0;              Stm32_Clock_Init(9); 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。