当前位置:首页 > GPIO输入输出(sys文件夹)
RCC->CR |= 0x00000001; //使能内部高速时钟HSION RCC->CFGR &= 0xF8FF0000;
//复位SW[1:0],HPRE[3:0],PPRE1[2:0],PPRE2[2:0],ADCPRE[1:0],MCO[2:0]
RCC->CR &= 0xFEF6FFFF; //复位HSEON,CSSON,PLLON RCC->CR &= 0xFFFBFFFF; //复位HSEBYP
RCC->CFGR &= 0xFF80FFFF; //复位PLLSRC, PLLXTPRE, PLLMUL[3:0] and USBPRE RCC->CIR = 0x00000000; //关闭所有中断
//配置向量表 #ifdef VECT_TAB_RAM
MY_NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else
MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); #endif }
RCC也是MDK定义的一个结构体,包含RCC相关的寄存器组。其寄存器名与STM32参考手册里面定义的寄存器名字是一摸一样的,所以在你不明白某个寄存器干什么用的时候,可以到STM32参考手册里面查找一下,你就可以迅速查到这个寄存器的作用以及每个位所代表的意思。
MY_NVIC_SetVectorTable函数的代码如下: //设置向量表偏移地址 //NVIC_VectTab:基址 //Offset:偏移量
void MY_NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset) {
//检查参数合法性
assert_param(IS_NVIC_VECTTAB(NVIC_VectTab)); assert_param(IS_NVIC_OFFSET(Offset));
SCB->VTOR = NVIC_VectTab|(Offset & (u32)0x1FFFFF80);//设置NVIC的向量表偏移寄存器
//用于标识向量表是在CODE区还是在RAM区 }
该函数是用来配置中断向量表基址和偏移量,决定是在那个区域。当在RAM中调试代码的时候,需要把中断向量表放到RAM里面这就需要通过这个函数来配置。关于向量表的详细介绍请参考<
3)Sys_Soft_Reset函数
该函数用来实现STM32的软复位。 //系统软复位
void Sys_Soft_Reset(void) {
SCB->AIRCR =0X05FA0000|(u32)0x04; }
SCB为MDK定义的一个寄存器组,里面包含了很多与系统相关的控制器,具体的定义如下所示:
typedef struct {
vuc32 CPUID; //CM3内核版本号寄存器 vu32 ICSR; //中断控制及状态控制寄存器 vu32 VTOR; //向量表便宜量寄存器
vu32 AIRCR; //应用程序中断及复位控制寄存器
vu32 SCR; //系统控制寄存器 vu32 CCR; //配置与控制寄存器 vu32 SHPR[3]; //系统异常优先级寄存器组 vu32 SHCSR; //系统Handler控制及状态寄存器 vu32 CFSR; //MFSR+BFSR+UFSR vu32 HFSR; //硬件fault状态寄存器 vu32 DFSR; //调试fault状态寄存器 vu32 MMFAR; //存储管理地址寄存器 vu32 BFAR; //硬件fault地址寄存器
vu32 AFSR; //辅助fault地址寄存器 } SCB_TypeDef;
在Sys_Soft_Reset函数里面,我们只是对SCB-> AIRCR进行了一次操作,即实现了STM32的软复位。AIRCR寄存器的个位定义如下图所示:
图2.7.2.1 AIRCR寄存器各位定义
从上面的位定义可以看出,要实现STM32的软复位,只要置位BIT2,这样就可以请求一次软复位。这里要注意bit31~16的访问钥匙,要将访问钥匙0X05FA0000与我们要进行的操作相或,然后写入AIRCR,这样才被CM3接受。
4)Sys_SleepDeep函数
STM32提供了3种低功耗模式,以达到不同层次的降低功耗的目的,这三种模式如下: 睡眠模式(CM3内核停止工作,外设仍在运行); 停止模式(所有的时钟都停止); 待机模式;
其中睡眠模式又分为有深度睡眠和睡眠之分。Sys_SleepDeep函数用来使STM32进入待机模式,在该模式下,STM32所消耗的功耗最低。下面是一个STM32的低功耗一览表:
图2.7.2.2 STM32低功耗模式一览表
下表展示了如何进入和退出待机模式,关于待机模式的更详细介绍请参考《STM32参考手册》第4.3.5节(33页)。
共分享92篇相关文档