STM32中用到的Cortex-M3寄存器说明

发布者:雅致书香最新更新时间:2021-06-24 来源: eefocus关键字:STM32  Cortex-M3  寄存器说明 手机看文章 扫描二维码
随时随地手机看文章

在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下:


1)、NVIC寄存器组

STM32的固件库中有如下定义:

typedefstruct

{

vu32ISER[2];

u32RESERVED0[30];

vu32ICER[2];

u32RSERVED1[30];

vu32ISPR[2];

u32RESERVED2[30];

vu32ICPR[2];

u32RESERVED3[30];

vu32IABR[2];

u32RESERVED4[62];

vu32IPR[11];

}NVIC_TypeDef;


它们对应ARM手册中的名称为

ISER=InterruptSet-EnableRegisters

ICER=InterruptClear-EnableRegisters

ISPR=InterruptSet-PendingRegister

ICPR=InterruptClear-PendingRegister

IABR=ActiveBitRegister

IPR=InterruptPriorityRegisters


每个寄存器有240位,以InterruptSet-EnableRegisters说明,ISER[0]对应中断源0~31,ISER[1]对应中断源32~63,STM32只有60个中断源,所以没有ISER[2:7]。


参考STM32技术参考手册中的中断向量表,中断源的位置为:

位置0-WWDG=WindowWatchdoginterrupt

位置1-PVD=PVDthroughEXTILinedetectioninterrupt

位置2-TAMPER=Tamperinterrupt

......

位置58-DMA2_Channel3=DMA2Channel3globalinterrupt

位置59-DMA2_Channel4_5=DMA2Channel4andDMA2Channel5globalinterrupts



2)、系统控制寄存器组

STM32的固件库中有如下定义:

typedefstruct

{

vuc32CPUID;

vu32ICSR;

vu32VTOR;

vu32AIRCR;

vu32SCR;

vu32CCR;

vu32SHPR[3];

vu32SHCSR;

vu32CFSR;

vu32HFSR;

vu32DFSR;

vu32MMFAR;

vu32BFAR;

vu32AFSR;

}SCB_TypeDef;/*SystemControlBlockStructure*/


它们对应ARM手册中的名称为

CPUID=CPUIDBaseRegister

ICSR=InterruptControlStateRegister

VTOR=VectorTableOffsetRegister

AIRCR=ApplicationInterrupt/ResetControlRegister

SCR=SystemControlRegister

CCR=ConfigurationControlRegister

SHPR=SystemHandlersPriorityRegister

SHCSR=SystemHandlerControlandStateRegister

CFSR=ConfigurableFaultStatusRegisters

HFSR=HardFaultStatusRegister

DFSR=DebugFaultStatusRegister

MMFAR=MemManageAddressRegister

BFAR=BusFaultAddressRegister

AFSR=AuxiliaryFaultStatusRegister


3)、系统时钟寄存器组

STM32的固件库中有如下定义:

typedefstruct

{

vu32CTRL;

vu32LOAD;

vu32VAL;

vuc32CALIB;

}SysTick_TypeDef;


它们对应ARM手册中的名称为

CTRL=SysTickControlandStatusRegister

LOAD=SysTickReloadValueRegister

VAL=SysTickCurrentValueRegister

CALIB=SysTickCalibrationValueRegister


关键字:STM32  Cortex-M3  寄存器说明 引用地址:STM32中用到的Cortex-M3寄存器说明

上一篇:STM32 FLASH 擦除(以及防止误擦除程序代码)、写入
下一篇:人员定位系统控制模块电路设计

推荐阅读最新更新时间:2024-11-03 18:18

一步步写STM32 OS【二】环境搭建
一、安装IAR for ARM6.5 二、新建工程 1、选择处理器:STM32F407VG,暂不使用FPU 2、必要的路径配置和宏定义 3、使用SWO重定向IO输出 4、使用ST-LINK仿真器 5、下载配置 6、设置CPU频率,防止SWO输出乱码 三、代码调试
[单片机]
一步步写<font color='red'>STM32</font> OS【二】环境搭建
详解STM32中的位带操作
在STM32中,位带操作是一种非常有用的技术,它可以让你直接访问一个单一的位,而不必去读取或者写入整个寄存器。这种技术可以用于提高代码的执行效率和减少代码的大小。 在STM32中,位带操作可以通过特殊的寄存器和内存映射来实现。具体来说,STM32的每个位都有一个对应的位带别名寄存器。例如,如果你想访问寄存器RCC- CR的第3个位,你可以使用位带别名寄存器来直接读取或者写入该位,而不必读取或者写入整个寄存器。 以下是一个示例代码,展示了如何使用位带操作来设置STM32的GPIOB端口的第5个位: #define BITBAND(addr,bitnum) ((addr & 0xF0000000)+0x02000000+
[单片机]
STM32学习笔记一一时钟系统
一、系统架构: 二、时钟树: STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。   ③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。 倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 2. 系统时钟SYSCLK可来源于
[单片机]
<font color='red'>STM32</font>学习笔记一一时钟系统
stm32_文件组织结构
以前给出完整程序时,是为了方便初学者看。将main函数用到的所有函数都放到main函数后,在main函数前加上函数声明,这样会显得main.c文件没有层次,所有函数在main.c中冲淡了功能代码。 一般项目中的文件组织结构是这样的:main.c文件只包含体现功能的代码。 main.c头文件只包含两个 #include stm32f0xx.h #include hw_config.h 接下是用户自定义的宏,这些宏也要是跟功能息息相关的,说白了就是main函数用到的,如果跟功能不直接相关,可以放到hw_config.h定义,如GPIO管脚的定义 #define OE GPIO_Pin_5
[单片机]
高手带你分析STM32 的启动过程(写的不错)
当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的入口地址在微控制器的内部存储空间中不再是绝对不变的。相信读者都可以回答这个问题,答案也许大同小异,但肯定都有个关键词,叫“启动文件”,用英文单词来描述是“Bootloader”。 无论性能高下,结构简繁,价格贵贱,每一种微控制器(处理器
[单片机]
STM32 SD卡通信整理
简介: SD卡从驱动到应用共分为4层,从下至上依次为:驱动层、物理层、文件系统层、应用层。下面一一来介绍各层的一些重要的操作。 驱动层 驱动层,对应到ST的库,就是stm32f10x_sdio.c/.h这个两文件。其实使用任何一个STM32的外设,只要用库函数都离不开这一对互相对应的.c/.h文件。对于SDIO外设来说,它就是用来操作寄存器的,由于涉及ST库函数的编写,没能力参透,在此不赘述它的实现过程。 物理层 这一层可以说是承上启下的一层,下接驱动层,用于操作寄存器,上接文件系统层,用于统一管 理文件,可谓整个SD驱动的核心代码。其实,如果对于SD的要求不高,可以直接在这一层上面进行文件操作,只是没有文件系统操作
[单片机]
STM32如何配置ADC?
1、 系统时钟定义: RCC_Configuration(); 包涵: RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMAx, ENABLE); // Enable DMA clock RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADCx , ENABLE); // Enable ADC1 and GPIOC clock 2、 中断源配置: NVIC_Configuration(); 举例: { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NV
[单片机]
ADC采集电压和显示 基于STM32的ADC—电压采集
功能介绍放开头, 使用便捷无需愁 这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发。 V3.3.0-STM32智能小车 视频: https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制、电磁循迹、RTOS等功能。 我们
[单片机]
ADC采集电压和显示 基于<font color='red'>STM32</font>的ADC—电压采集
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved