新手上路
- 积分
- 48
- 金钱
- 48
- 注册时间
- 2019-2-23
- 在线时间
- 17 小时
|

楼主 |
发表于 2019-12-7 17:08:39
|
显示全部楼层
修改应用程序中断向量,原子哥的Hal库版,和寄存器版是不同的。
Hal库版,在主程序前加一条, SCB->VTOR = FLASH_BASE | 0x10000;//设置偏移量。
寄存器版,是在Stm32_Clock_Init函数中修改,如下
void Stm32_Clock_Init(u32 plln,u32 pllm,u32 pllp,u32 pllq)
{
RCC->CR|=0x00000001; //设置HISON,开启内部高速RC振荡
RCC->CFGR=0x00000000; //CFGR清零
RCC->CR&=0xFEF6FFFF; //HSEON,CSSON,PLLON清零
RCC->PLLCFGR=0x24003010; //PLLCFGR恢复复位值
RCC->CR&=~(1<<18); //HSEBYP清零,外部晶振不旁路
RCC->CIR=0x00000000; //禁止RCC时钟中断
Sys_Clock_Set(plln,pllm,pllp,pllq);//设置时钟
//配置向量表
#ifdef VECT_TAB_RAM
MY_NVIC_SetVectorTable(1<<29,0x0);
#else
MY_NVIC_SetVectorTable(0,0x10000);//0x0
#endif
}
请注意,本人也走了弯路。 |
|