stm32在SRAM中调试部分中断不响应的问题.doc_第1页
stm32在SRAM中调试部分中断不响应的问题.doc_第2页
stm32在SRAM中调试部分中断不响应的问题.doc_第3页
stm32在SRAM中调试部分中断不响应的问题.doc_第4页
stm32在SRAM中调试部分中断不响应的问题.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

stm32在SRAM中调试部分中断不响应的问题因为stm32在flash区擦写的次数有限,所以我选择在sram中调试,SRAM擦除次数无限次,不过掉电代码就消失。代码放在SRAM中,对于我们调试是非常有帮助的。(我用的是原子的开发板)最近这几天发现,在SRAM中调试,部分中断不响应的问题,比如RTC秒中断,明明使能了秒中断,可是总是卡在某个地方不动,然后怎么也进入不了中断。下面是我的代码。结合代码说明问题吧。rtc.h文件中代码#ifndef _RTC_H#define _RTC_Htypedef structu8 m;u8 h;u8 s;calendar;extern calendar rl;extern u8 tim_bz;u8 RTC_Init(void);#endifrtc.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 |= 1APB1ENR |= 1CR |= 1BDCR |= 1BDCR &= (1BDCR |= 1BDCR&0X02)&temp=250)return 1;/初始化失败,外部晶振有问题/4,选择RTC时钟源并使能RCC-BDCR |= 1BDCR |= 1CRL&(1CRL&(1CRH |= 0x01;/允许秒中断while(!(RTC-CRL&(1CRL |= 1PRLH = 0x0000;RTC-PRLL |=32767;/设置RTC时钟频率为1hzRTC-CNTL = 0x0005;RTC-CNTH = 0X0000;RTC-CRL &= (1CRL&(1CRL &= (1DR1 = 0X5050;elsewhile(!(RTC-CRL&(1CRH |= 0x01;/允许秒中断while(!(RTC-CRL&(1CRL&0X01)tim_bz = 1;/进入中断标志,等下判断是否发生中断RTC-CRL &= (1CRL&(1CNTH;TimeData CNTL;rl.h =TimeData/3600;rl.m =(TimeData600)/60;rl.s =TimeData;LCD_ShowNum(60,162,rl.h,2,16);LCD_ShowNum(84,162,rl.m,2,16);LCD_ShowNum(108,162,rl.s,2,16);LED0 = LED0;在SRAM当中调试代码,标志位始终没有为1,这就说明没有进入中断函数。问题在哪?嘿嘿,查阅资料发现,原子哥的中断向量配置需要修改一下。在sys.h文件中有个MYRCC_DeInit()函数,修成这样,也就是把中断向量表映射到SRAM区。这样的话就所有的中断响应都没问题了。原因很简单,代码在哪里,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论