- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
stm32在SRAM中调试部分中断不响应的问题stm32在SRAM中调试部分中断不响应的问题
stm32在SRAM中调试部分中断不响应的问题
?
?因为stm32在flash区擦写的次数有限,所以我选择在sram中调试,SRAM擦除次数无限次,不过掉电代码就消失。代码放在SRAM中,对于我们调试是非常有帮助的。(我用的是原子的开发板)
????最近这几天发现,在SRAM中调试,部分中断不响应的问题,比如RTC秒中断,明明使能了秒中断,可是总是卡在某个地方不动,然后怎么也进入不了中断。下面是我的代码。结合代码说明问题吧。
?
rtc.h文件中代码
?
#ifndef __RTC_H#define __RTC_H
typedef struct{?u8 m;?u8 h;?u8 s;}calendar;extern calendar rl;extern u8 tim_bz;u8 RTC_Init(void);
#endif
rtc.c文件中代码
#include sys.h#include delay.h#include rtc.hu8 tim_bz=0;calendar rl;u8 RTC_Init(void){?u8 temp = 0;?if(BKP-DR1 != 0X5050)//检测是不是第一次配置,后面会有向BKP-DR1写数据的语句?{??//1,使能电源时钟和备份区域时钟??RCC-APB1ENR |= 128;//电源接口时钟使能??RCC-APB1ENR |= 127;//备份接口时钟使能
??//2,取消备份区域写保护,需要向备份区域写??//一个字节来标记时钟已经配置过了,避免每次复位启动??PWR-CR |= 18;//取消后备区域的写保护????//3,复位备份区域,开启外部低速振荡器??RCC-BDCR |= 116;//备份域软件复位??RCC-BDCR = ~(116);//备份域软件复位清,因为备份域软件复位要由软件清除,且不能一直复位。???RCC-BDCR |= 10;//外部低速时钟使能??while((!(RCC-BDCR0X02))temp250)//判断rtc外部低速振荡器是否就绪??{???temp++;???delay_ms(10);??}
??if(temp=250)return 1;//初始化失败,外部晶振有问题
??//4,选择RTC时钟源并使能??RCC-BDCR |= 18;//LSE振荡器作为rtc时钟??RCC-BDCR |= 115;//RTC时钟使能??while(!(RTC-CRL(15)));//等待rtc写操作完成??while(!(RTC-CRL(13)));//等待RTC寄存器和APB1接口同步??RTC-CRH |= 0x01;//允许秒中断??while(!(RTC-CRL(15)));//等待rtc写操作完成??RTC-CRL |= 14;//允许配置RTC寄存器
??RTC-PRLH = 0x0000;??RTC-PRLL |=32767;//设置RTC时钟频率为1hz??RTC-CNTL = 0x0005;??RTC-CNTH = 0X0000;??RTC-CRL = ~(14);//配置更新??while(!(RTC-CRL(15)));//等待rtc写操作完成??RTC-CRL = ~(15);//rtc操作关闭??BKP-DR1 = 0X5050;?}?else?{??while(!(RTC-CRL(13)));//等待RTC寄存器和APB1接口同步??RTC-CRH |= 0x01;//允许秒中断??while(!(RTC-CRL(15)));//等待rtc写操作完成???}?MY_NVIC_Init(0,0,RTC_IRQn,2);//设置中断?return 0;}
void RTC_IRQHandler(void){?if(RTC-CRL0X01)?{??tim_bz = 1;//进入中断标志,等下判断是否发生中断??RTC-CRL = ~(10);//清除秒标志??while(!(RTC-CRL(15)));//等待rtc写操作完成????}}
?
?
主函数代码
#include sys.h#include usart.h??#include delay.h?#include led.h#include beep.h???#include key.h???#include exti.h???#include wdg.h ?#include timer.h????#include tpad.h????#include lcd.h#include rtc.h????
int
您可能关注的文档
- SAA 安规认证强制产品类别SAA 安规认证强制产品类别.pdf
- SAAT国密智能一卡通系统介绍2SAAT国密智能一卡通系统介绍2.pdf
- Sailor船舶通信导航设备价格(Thrane&Thrane )Sailor船舶通信导航设备价格(Thrane&Thrane ).pdf
- Samsung GALAXY GRAND2 4G无法接打电话,如何解决(G7108V)Samsung GALAXY GRAND2 4G无法接打电话,如何解决(G7108V).pdf
- Samsung Galaxy Note3如何截屏(N9006,N9008,N9002,N9009)Samsung Galaxy Note3如何截屏(N9006,N9008,N9002,N9009).pdf
- Samsung Galaxy Note3如何截屏(N9008V)Samsung Galaxy Note3如何截屏(N9008V).pdf
- Samsung Galaxy Tab S2如何截屏(T815C)Samsung Galaxy Tab S2如何截屏(T815C).pdf
- Samsung Galaxy Tab S2 SM-T719C(6.0.1)如何截屏Samsung Galaxy Tab S2 SM-T719C(6.0.1)如何截屏.pdf
- Samsung Galaxy A8如何使用方向锁定功能(A8000)Samsung Galaxy A8如何使用方向锁定功能(A8000).pdf
- sas范文36个大中城镇居民家庭基本情况sas范文36个大中城镇居民家庭基本情况.pdf
文档评论(0)