#define RCC ((RCC_TypeDef *) RCC_BASE) RCC->SR该怎么理解

发布者:朱雀最新更新时间:2022-06-07 来源: eefocus关键字:宏定义  RCC  寄存器 手机看文章 扫描二维码
随时随地手机看文章

1.这个宏定义是把RCC宏定义到stm32RCC寄存器的分配的存储器单元的首地址上,其中RCC_TypeDef是stm32f10x_map.h中定义的结构体,用来表述RCC所有寄存器构成的

 

2.RCC是RCC_TypeDef *类型的.准确的说,RCC指代表达式((RCC_TypeDef *) RCC_BASE),而这个表达式是在地址RCC_BASE上建立一个RCC_TypeDef的结构体.以后可以用RCC这个助记符当RCC_TypeDef结构体的指针使用.


3.#define RCC  ((RCC_TypeDef *) RCC_BASE) 

RCC_TypeDef是一个定义的结构体 
RCC_BASE是一个unsigned long(32位数值) 

简化后是:(int *) 0xb8000000. 
明显,指针是一个存放地址的变量, 
int a=1; 
int *p=&a; 
a与*p是同一个体! 

在stm32你是知道RCC寄存器的地址的如0xb8000000,并且目的是用指针指向这个地 
很自然会有: 
int *p; 
p=0xb8000000; 
但是0xb8000000是一个整数,编译器不知0xb8000000是内存地址,所以通过强制类型转换将数字转为合适的地址类型。 
则,int *p; 
p=(int *)0xb8000000; 
这样P就装有一个地址, 
#define RCC  ((RCC_TypeDef *) RCC_BASE) 
RCC  就指向是RCC_BASE这个地址 
从RCC_BASE开始,长度为RCC_TypeDef这个类型的长度!


关键字:宏定义  RCC  寄存器 引用地址:#define RCC ((RCC_TypeDef *) RCC_BASE) RCC->SR该怎么理解

上一篇:STM32中stm32f10x.h头文件如何把宏定义的常量转化为地址
下一篇:单片机STM32学习笔记之寄存器映射详解

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

[register]-04-ARMv8的寄存器简介和总结
在介绍寄存器之前,我们先看下ARM中都有什么,以arm为例: 1、通用寄存器 (1)、a r m v 7 color{red}{arm v7}armv7 有 16 个 32-bit 通用寄存器,用 r0-r15 表示; sp:r13, lr:r14, pc:r15 (2)、a r m v 8 color{red}{arm v8}armv8 有 31 个 64-bit 通用寄存器,用 x0-x30 表示,和v7不一样的是,这31个寄存器也可以作为 32-bit 寄存器来用,用 w0-w30 表示,其中 wn 是 xn 的低32位; lr:x30, sp, pc 2、向量寄存器(SIMD) (1)、a r m v 7 colo
[单片机]
[register]-04-ARMv8的<font color='red'>寄存器</font>简介和总结
常用的串口相关寄存器介绍
常用的串口相关寄存器: USART_SR状态寄存器: FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG); COPY USART_DR数据寄存器: void USART_SendData(USART_TypeDef* USARTx, uint16_t Data); uint16_t USART_ReceiveData(USART_TypeDef* USARTx); COPY USART_ BRR波特率寄存器: void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef*
[单片机]
常用的串口相关<font color='red'>寄存器</font>介绍
USB-GPIB控制器的硬件电路设计
引 言   USB是PC体系中一套全新的工业标准,通用可编程接口GPIB(General Programmable Interface BUS),是Cy-press公司在其EZ-USB FX以及FX2系列单片机里设计的一个可由用户编程的接口,具有快速、灵活等特点;可使用多种协议完成与外围器件的无缝连接,如EIDE/ATAPI、IEEE1284、Utopia等。对其可以根据需要进行编程,且运行中不需要CPU的干预,仅通过一些CPU标志和中断与增强型8051内核通信。作为自动化测试仪器的互联标准历史悠久,使用广泛,组建费用低廉且操作方便,特别是连接台式机的时候尤其显得灵活高效。在很多对测试速度要求不高以及对测试仪器体积不作要求的情况下
[工业控制]
STM32学习笔记--GPIO寄存器定义
1、GPIO的寄存器按照功能可以分为以下几类: A、配置寄存器 B、数据寄存器 C、位寄存器 D、 锁定寄存器 2、对于GPIO端口,每个端口有16个引脚,每个引脚的模式由寄存器的四个位控制,每四位又分为两位控制引脚配置(CNFy ),两位控制引脚的模式及最高速度(MODEy ),其中y表示第y个引脚。配置GPIO引脚模式的一共有两个寄存器,CRH是高寄存器,用来配置高8位引脚,还有CRL配置低八位引脚。 3、端口位设置\清除寄存器(GPIOx_BSRR) 一个引脚 y 的输出数据由 GPIOx_BSRR 寄存器位的2 个位来控制分别为 BRy (Bit Reset y)和BSy (Bit Set y),BRy 位用于写 1清零
[单片机]
工程师笔记|如何理解 RAMECC FAR 寄存器的值
1.问题原因 某客户测试 STM32H753xi 板子上的 ECC 功能,用于监控 AXI-SRAM 区域,但不是很明白 RAMECC FAR 寄存器在 RM0433 中的描述, “Bits 31:0 FADD : ECC error failing address”。 比如在 AXI-SRAM 中,如果客户示例显示的是 FAR = 0x2004,但是这个地址值 0x2004 并不在 AXI-SRAM 范围之内,客户该如何理解 FAR 寄存器?希望能够有详尽的描述,这个 FAR 寄存器的偏移地址是 Word 地址还是 Byte 地址或其他?我们先来看看相关参考手册中关于 RAMECC 的介绍去寻找答案。
[单片机]
工程师笔记|如何理解 RAMECC FAR <font color='red'>寄存器</font>的值
STM32片上Flash内存映射、页面大小、寄存器映射
摘要: 本文以STM32F103RBT6为例介绍了片上Flash(Embedded Flash)若干问题,包括Flash大小(内存映射)、块大小、页面大小、寄存器。这些知识,有利于写Flash驱动。 一、怎么看Flash大小 1.1 通过型号 型号会印在MCU表面,可以通过观察获得,我的是STM32F103RBT6(以下分析基于这个型号),对照下图的STM32产品命名,可知STM32F103RBT6的Flash是128KB。 () 图1 Ordering information scheme 1.2 通过数据手册(内存映射) 也可以通过数据手册得到Flash大小,首先根据型号从官网下得对应的数据手册D
[单片机]
STM32片上Flash内存映射、页面大小、<font color='red'>寄存器</font>映射
STM32文档中关于NVIC寄存器说明的位置
要使用STM32,需要各种文档,其中有(以STM32F103RBT6为例): st官方资源地址:http://www.st.com/internet/mcu/product/164487.jsp 1、datasheet: http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00161566.pdf 2、REFERENCE MANUALS: http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/
[单片机]
STM32文档中关于NVIC<font color='red'>寄存器</font>说明的位置
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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