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该怎么理解
推荐阅读最新更新时间:2024-11-08 12:49
DSP片外高速海置SDRAM存储系统设计
在数字图像处理、航空航天等高速信号处理应用场合,需要有高速大容量存储空间的强力支持,来满足系统对海量数据吞吐的要求。通过使用大容量同步动态RAM(SDRAM)来扩展嵌入式DSP系统存储空间的方法,选用ISSI公司的IS42S16400高速SDRAM芯片,详细论述在基于TMS320C6201(简称C6201)的数字信号处理系统中此设计方法的具体实现。 1 IS42S16400芯片简介 IS42S16400是ISSl公司推出的一种单片存储容量高达64 Mb(即8 MB)的16位字宽高速SDRAM芯片。SDRAM的主要特点是:①同步访问,读写操作需要时钟;②动态存储,芯片需要定时刷新。IS42S16400采用CMOS工艺,它的
[应用]
七种寻址方式(立即寻址、寄存器寻址)
一、立即寻址方式 操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 立即数可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。例如: MOV AH, 80H ADD AX, 1234H MOV ECX, 123456H MOV B1, 12H MOV W1, 3456H ADD D1, 32123456H 其中:B1、W1和D1分别是字节、字和双字单元。 以上指令中的第二操作数都是立即数,在汇编语言中,规定:立即数不能作为指令中的第二操作数。该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致
[单片机]
MCS-51系列特殊功能寄存器
1. P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 2.SP 栈指针(81H) 3.DPTR 数据指针(由DPH和DPL组成) DPL 数据指针低八位 (82H) DPH 数据指针高八位 (83H) 4.PCON 电源管理寄存器 (87H) SMOD —— —— —— GF1 GF0 PD IDL SMOD :波特率倍增位。SMOD=0时,不变;SMOD=1时,倍增。 GF1,GF0 :通用标志位。 PD :掉电方式位。PD=1时,进入掉电方式。 IDL :待机方式位。IDL=1时,进入待机方式。 5.TMOD 定时/记数方式寄存器 (
[单片机]
arm学习笔记四(arm伪指令)
arm伪指令 符号定义伪指令 定义arm汇编程序中的变量、对变量赋值以及定义寄存器的别名 定义全局变量 gbla(全局数字变量,初始化值为0) GBLA 全局变量名 示例代码如下: GBLA Test1;定义全局数字变量test1 Test1 SETA 0x123;将该变量赋值为0x123 gbll(全局逻辑变量,初始化为F) GBLL 全局变量名 示例代码如下: GBLL Test2;定义全局逻辑变量test2 Test2 SETL {TRUE};将变量赋值为真 bgls(全局字符串变量,初始化为空) GBLS 全局变量名 示例代码如下: GBLS Test3;定义全局字符串变量test3 Test3 SETS
[单片机]
STM8 寄存器操作GPIO
硬件平台:stm8s103 编译环境:IAR for stm8 #include iostm8s103f3.h #include intrinsics.h int main(void) { // 初始化端口D. PD_ODR_ODR4 = 0; //PD4输出低电平 PD_DDR_DDR4 = 1; //设置D端口,位4输出 PD_CR1_C14 = 1; //引脚设置为上拉输出 PD_CR2_C24 = 1; //设置10MHz输出(翻转速度) while (1) { PD_ODR_ODR4 = 1; // PD4输出高电平 // PD_O
[单片机]
模拟音频芯片在数据采集过程二次通讯中的应用
1音频模拟芯片TLC320AD50C TI公司的TLC320AD50C采用过采样ΣΔ技术,在DAC前有一个插值滤波器,在ADC后有一个抽样滤波器,这种结构使系统接收、发送可同时进行。而且TLC320AD50C可实现高分辨率,低速信号,高采样率(最高可达22.5kb/s)的AD/DA转换。它由一对16位的同步串行转换通道组成,可直接和DSP连接进行通信。 TLC320AD50C的特点如下: (1)器件中的ADC为64倍过采样,DAC为256倍过采样(内部); (2)带有内建抗混叠滤波器和sinx/x补偿; (3)可配置成主机或从机方式,一个串行接口可支持3个从设备和DSP进行通讯。 TLC320AD50
[手机便携]
51单片机串行通信的原理解析
51单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现
[单片机]
ATmega16 MCU控制寄存器MCUCR
MCU 控制寄存器包含了电源管理的控制位。 · Bits 7, 5, 4 – SM2..0: 休眠模式选择位 2、1 和0如 Table 13 所示,这些位用于选择具体的休眠模式。 · Bit 6 – SE: 休眠使能 为了使MCU 在执行SLEEP 指令后进入休眠模式, SE 必须置位。为了确保进入休眠模式是程序员的有意行为,建议仅在SLEEP 指令的前一条指令置位SE。MCU 一旦唤醒立即清除SE
[单片机]