b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c语言内存分配对应 嵌入式C语言开发(2)

电脑杂谈  发布时间:2018-02-07 23:20:47  来源:网络整理

元还对应一个地址,我们要操作这些单元,也就是通过对应的地址来访问。由于

STM32 外设非常多而且复杂,如果每操作一个外设就要写一大串对应的存储单元

地址,显然是非常麻烦的而且还极容易出错。因此我们就把每个单元的功能作为

名,给这个内存取一个别名,这个别名就是我们经常说的寄存器。

然后通过C

语言指针来操作这些寄存器即可。那什么是寄存器映射呢?给已经分配好地址的

有特定功能的内存单元取别名的过程就叫寄存器映射。

比方说我们找到0x4001 1010 这个单元地址,那么可以通过查阅相关资料了

解到此单元具有GPIOC 端口置位/复位功能(至于此地址如何查找这个功能我们

后面会具体介绍)。因此为了更好区分此单元的功能和方便后续的程序开发,可

以给这个单元取一个别名GPIOC_BSRR,那么这个GPIOC_BSRR 就是寄存器,并且

这个寄存器地址就是0x4001 1010。这个过程就是寄存器映射。

如何访问STM32 寄存器内容:

我们知道寄存器就是一些有特定功能的内存单元,所以要访问STM32 寄存器

也就是操作STM32 的内存单元,根据C 语言指针的特点,可以使用指针来操作

STM32 的内存单元。假如我们要让STM32 的GPIOC 的第0 管脚输出低电平,我们

怎么使用C 语言来处理?

片上外设区分为四条总线,根据外设速度的不同,不同总线挂载着不同的外

设, APB1 挂载低速外设,APB2 和AHB 挂载高速外设。相应总线的最低地址我

们称为该总线的基地址,总线基地址也是挂载在该总线上的首个外设的地址。

APB1 总线的地址最低,因此片上外设就从这这个地址开始,也称外设基地址。

c语言 内存_c语言内存分配对应_c语言 ?

技术分享图片

外设基地址

每条总线上都会挂接着很多的,

XXX 外设的首个地址即最低地址就是XXX 外设的基地址,也称作XXX 边界地

址。有关STM32F1xx 外设的具体边界地址可以参考《STM32F1xx 中文参考手

册》P28 页,里面有详细的介绍。这里我们就以GPIO 外设来讲解外设基地址。

其他的外设也是同样分析

技术分享图片

外设GPIOx 都是挂接在APB2 总线上,属于高速的外

设,而APB2 总线的基地址是0x4001 0000,故GPIOA 的相对APB2 总线的地址偏

移是800。

(3)外设寄存器地址

XXX 内。这里我们以GPIO 外

设为例,GPIO 是通用输入输出端口的简称,可以通过软件来控制其输入和输出。

GPIO 有很多个寄存器,每一个都有特定的功能。每个寄存器为32bit,占四个

字节,这些寄存器都是按顺序依次排列在外设的基地址上。寄存器的位置都以相

普中STM32F1xx 开发攻略

39

对该外设基地址的偏移地址来描述。这里我们以GPIOC 端口为例,来说明GPIO

都有哪些寄存器,技术分享图片

这里我们就以GPIOC_BSRR 寄存器来教大家如何看《STM32F1xx 中文参考手

册》内寄存器的说明。大家如果想要了解更多的寄存器内容,可以参考《STM32F1xx

中文参考手册》相应寄存器外设部分。

首先我们需要打开STM32 中文参考手册,然后找到GPIO 外设章节,里面会

有一个GPIO 寄存器,只要找到我们所要查找的寄存器即可技术分享图片

A.红色框4 表示的我们所查找寄存器的名称,寄存器GPIOx_BSRR 内的x 表

示的是STM32GPIO 端口,范围是A-E,也就是说在GPIOA、GPIOB 等端口中都有

这个寄存器。

B.红色框5 表示的是相对GPIOx 地址的偏移值,比如现在我们使用的是


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66178-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...