STM32:寄存器概念

目录

1. STM32长什么样

 2. STM32内部有什么

2.1 STM32芯片架构简图

 3. 存储器映射

3.1 什么叫存储器映射?

3.2 让GPIOB端口的16个引脚输出高电平,要怎么实现?

 4. 什么是寄存器

 4.1 总线基地址

 4.2 寄存器的种类

4.2.1 存储器种类

4.3 RAM存储器

4.3.1 DRAM的存储单元结构

4.3.2 SRAM的存储单元结构

4.3.3 DRAM与SRAM的特性 

4.4 非易失性存储器

4.4.1 FLASH存储器       

 4.4.2 FLASH存储器


1. STM32长什么样

1、学会看丝印

2、懂得如何辨别正方向

 2. STM32内部有什么

2.1 STM32芯片架构简图

 STM32F10xx系统框图

 3. 存储器映射

3.1 什么叫存储器映射?

        存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射。

        具体的可参考《STM32F103xCDE_数据手册》4-memory mapping章节

3.2 让GPIOB端口的16个引脚输出高电平,要怎么实现?

        通过绝对地址访问内存单元


// GPIOB 端口全部输出 高电平
*(unsigned int*)(0x40010C0C) = 0xFFFF;

10X40010C0C GPIOB输出数据寄存器ODR的地址,如何找到?

2(unsigned int*)的作用是什么?

2、学会使用C语言的 *

 

 4. 什么是寄存器

        寄存器:给有特定功能的内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。

        寄存器映射:给存储器分配地址的过程存储器映射,再分配一个地址叫重映射。

 4.1 总线基地址

 

 

 

 4.2 寄存器的种类
4.2.1 存储器种类

4.3 RAM存储器

        RAM是“Random Access Memory”的缩写,被译为随机存储器。所谓随机存取,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。这个词的由来是因为早期计算机曾使用磁鼓作为存储器,磁鼓是顺序读写设备,而RAM可随读取其内部任意地址的数据,时间都是相同的,因此得名。

        实际上现在RAM已经专门用于指代作为计算机内存的易失性半导体存储器。

根据RAM的存储机制,又分为动态随机存储器DRAM(Dynamic RAM)以及静态随机存储器SRAM(Static RAM)两种。

4.3.1 DRAM的存储单元结构

        动态随机存储器DRAM(Dynamic RAM)

 DRAM以电容的电荷来表示数据

4.3.2 SRAM的存储单元结构

        静态随机存储器SRAM(Static RAM)

 SRAM以锁存器来存储数据

4.3.3 DRAM与SRAM的特性 

4.4 非易失性存储器
4.4.1 ROM存储器       

ROM是“Read Only Memory”的缩写,意为只能读的存储器。由于技术的发展,后来设计出了可以方便写入数据的ROM,而这个“Read Only Memory”的名称被沿用下来了,现在一般用于指代非易失性半导体存储器,包括后面介绍的FLASH存储器,有些人也把它归到ROM类里边。

种类

特性

MASK ROM

出厂时固化,不可修改

OTPROM

用户可写入一次,之后不可修改

EPROM

可重复擦写,需要使用专用紫外线照射设备擦除

EEPROM

可重复擦写,电擦除,使用方便

 4.4.2 FLASH存储器

        FLASH存储器又称为闪存,它也是可重复擦写的储器,部分书籍会把FLASH存储器称为FLASH ROM,但它的容量一般比EEPROM大得多,且在擦除时,一般以多个字节为单位。

        根据存储单元电路的不同,FLASH存储器又分为NOR FLASHNAND FLASH

特性

NOR FLASH

NAND FLASH

同容量存储器成本

较贵

较便宜

集成度

较低

较高

介质类型

随机存储

连续存储

地址线和数据线

独立分开

共用

擦除单元

以“扇区/块”擦除

以“扇区/块”擦除

读写单元

可以基于字节读写

必须以“块”为单位读写

读取速度

较高

较低

写入速度

较低

较高

坏块

较少

较多

是否支持XIP

支持

不支持

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
嗨!对于学习STM32寄存器编程,你可以按照以下步骤进行: 1. 了解寄存器的基本概念寄存器是用来存储数据的硬件组件,它们在微控制器中起着重要的作用。了解寄存器的种类和功能是学习STM32寄存器编程的基础。 2. 确定你所使用的STM32系列微控制器型号:每个STM32系列微控制器都有自己的寄存器集合和功能。你需要确定你所使用的型号,并下载相关的参考手册。 3. 下载STM32参考手册:在STMicroelectronics官网上,你可以找到针对特定型号的STM32参考手册。这些手册详细描述了每个寄存器的功能、配置方法和寄存器地址等重要信息。 4. 学习寄存器编程技巧:在学习STM32寄存器编程之前,你需要掌握C或者汇编语言编程知识。了解如何读写寄存器、设置位字段和使用寄存器的位操作是非常重要的。 5. 编写代码:根据参考手册中提供的信息,你可以编写代码来配置和操作寄存器。这样可以实现对特定功能或外设的控制。 6. 测试和调试:一旦编写完代码,你可以将其下载到STM32微控制器上,并通过调试器或串口输出等方式验证是否实现了预期的功能。如果有问题,可以根据调试信息进行排查和修复。 请注意,寄存器编程是低级别的编程方法,需要更多的手动配置和对硬件的了解。如果你是STM32初学者,可能更容易使用标准库或CubeMX等工具来进行开发,这些工具可以简化硬件配置过程。一旦你对STM32有了更深入的了解,再尝试寄存器编程也是很有意义的。祝你学习愉快!如有问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摸鱼特长生.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值