云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > GPIO输入输出(sys文件夹)

GPIO输入输出(sys文件夹)

  • 62 次阅读
  • 3 次下载
  • 2025/5/23 21:00:33

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里面这就需要通过这个函数来配置。关于向量表的详细介绍请参考<>第七章,第113页的向量表一章。

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页)。

搜索更多关于: GPIO输入输出(sys文件夹) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

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, PLL

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com