当前位置:首页 > 技术学院 > 技术前线
[导读]STM32 (1) 之 什么是寄存器?

什么是储存器映射?

什么是寄存器映射?

芯片辨别

1怎么看芯片丝印

缺口正方向()

正看丝印左边第一个脚为一脚

写程序最终是操作寄存器,这里参考零死角玩转 STM32 第六章什么是寄存器章节


外设:GPIO USART 12C SPI 等 Cortex-M3内核是主控器

soc厂商 苹果 三星 ST

在 存储器和总线架构这里


体现了内核外设的连接

我们写好的程序是由单片机来执行的,执行的时候是由内核来取这些指令的,程序我们放在FLASH里,但是内核要读取程序,要通过ICode总线读取 I (lnstruction指令)


2。DCode


const 常量是存放在flash里面的

变量是放在内部的SRAM当中的 要读取的时候是通过DCode这条总线去读取的

在驱动单元中还有另外一部分: DMA他也是可以读取数据的, DMA和DCode有时会同时读取,那么就会产生冲突,这时就需要总线矩阵来总裁,判断到底由哪条总线来读取数据

3 System 系统总线

主要用来读取寄存器 内核要想操作某个外设,必须要通过操作寄存器来实现,读取的时候也就是通过这个System总线 来读取 而寄存器存在于外设当中

4 DMA 主要用来搬数据

比如:cpu要读取一个变量,该变量在 sram里面,将变量存到串口的数据寄存器(DR),如果不使用DMA,cpu要先通过DCode将变量独到CPU当中,然后再把变量存到 串口的数据寄存器,但是,如果你使用了DMA ,那么CPU只需要发一个命令,DMA就可以直接 将变量存到串口的数据寄存器 CPU就可以空闲出来,可以做其他事情

AHB 总线到APB 总线

AHB挂在了两个外设 1复位和时钟控制(RCC) 2. SDIO

AHB通过桥接 分成了 APB1 和 APB2

APB2 是高速总线 里面的外设如上图所示

APB1 是低速总线

FSMC 是用来驱动外存的 驱动液晶的时候会讲,我们重点要学的是 APB1和 APB2上的外设

接下来看英文板 STM32 英文版 《数据手册》memory mapping章节我们编程时所操作的寄存器只包括下图这部分,


我们可以从memory mapping 中发现ARM是32位的2的32 次方 有4GB 被分成了8个块(每一块有512M)

第0块 放FLASH(block0) ST只用了512kb

第1块 放SRAM ST 只用了64kb

第2块 (block3)放外设(Peripherals)

第3.4块 (block4 5)都是FSMC 的寄存器 block6没有用

block7 放Cortex-m3 的寄存器

我们重点要学习的是block2 里面的 外设,我们所说的所有的 寄存器都在block2里面

什么是存储器映射?


ST给一块内存编好地址,叫存储器映射,然后我们可以根据这些地址去访问这些内存,上表就是存储器功能分类,这个表其实对应的就是memory mapping

接下来就可以进行编程了


这个操作和51很类似

51中头文件 reg52.h 做了寄存器映射如下图


STM32如何实现 GPIOB全部输出高电平?

打开STM32 中文参考手册 找到GPIO的寄存器 ODR寄存器(端口数据寄存器)只用到了低16位,每一个位对应端口的一个IO

如果想要GPIOB的所有端口都输出高电平 那么将寄存器的16位都写1就行了,知道要操作哪个寄存器以后我们要在memory mapping看GPIOB对应的地址


上图也可以在《STM32中文参考手册》当中存储器和总线架构当中找到

0x40010c00 起始地址

0x40010FFF 结束地址


地址偏移

是相对于端口的基地址的偏移 那么这个寄存器的地址就是

端口的基地址+地址偏移=0x40010c00+0x0c

上面这个就是 GPIOB端口的ODR寄存器的地址

上面的*(unsigned int*)(0x40010C0C)意思是:将0x40010C0C这个地址强制转化位 无符号指针类型再将0xFFFF赋值给0x40010C0C。

还有另外一种方法;

通过define 将0x40010C0C定义成一个宏 再通过宏来操作



总结:我们在编程的时候都是在操作寄存器, 这些寄存器是由芯片厂商在一段特定的内存当中规定好的,它每一个内存单元对应一个外设,每一个内存单元对应一个字节。 32位单片机就对应了4个字节,每一个内存单元都是有特定功能的我们往这些内存单元里写数据的话就能操作这些外设



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

电磁铁是一种利用电流产生磁场的装置,具有快速响应、易于控制等特点,在工业自动化、电子设备、科学实验等领域有着广泛的应用。STM32是一款功能强大的微控制器,具有高性能、低功耗、易于编程等优点,是控制电磁铁的理想选择。本文...

关键字: 电磁铁 微控制器 STM32

边缘人工智能的实现涉及到三个基本 要素:安全性,连接性、自主性,而其中自主性是AI能力的体现,也是边缘AI有别于其他传统的物联网的关键。而通过ST Edge AI套件,就可以帮助各种不同类型的开发者实现覆盖全硬件平台的全...

关键字: 边缘人工智能 AI STM32

今天,小编将在这篇文章中为大家带来STM32单片机最小系统的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 单片机 单片机最小系统 STM32

74LS175是一款4D触发器集成电路,它包含6个D触发器,这些触发器可以组合起来形成寄存器或抢答器等多种功能部件。

关键字: 74ls175 触发器 寄存器

单片机复位电路的作用是:使单片机恢复到起始状态,让单片机的程序从头开始执行,运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。

关键字: 复位电路 单片机 寄存器

STM32是一款由STMicroelectronics生产的微控制器系列,具有高性能、低功耗和丰富的外设资源。其中,串口通信是一种常用的通信方式,可以实现与其他设备之间的数据传输。

关键字: STM32 串口通信 微控制器

STM32是一种广泛使用的微控制器,具有丰富的通信接口。其中,串口通信是STM32与其他设备或系统进行数据交换的重要方式之一。本文将详细介绍STM32串口通信的原理、应用及常见故障。

关键字: STM32 串口通信
关闭
关闭