STM32F103学习笔记

(理论概念-常见嵌入式岗位面试题) 通过点灯实践,结合阅读ARM、STM32技术手册,深入思考STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置的一般步骤。回答:1)嵌入式C程序代码对内存(RAM)中的各变量的修改操作,与对外部设备(寄存器—>对应相关管脚)的操作有哪些相同与差别?2)为什么51单片机的LED点灯编程要比STM32的简单?

一、存储器映射原理

STM32微控制器通过地址映射机制将逻辑地址转换为物理地址,从而使程序可以访问和操作外设寄存器、存储器及其他硬件资源。
映射其实就是对应的意思。事实上存储器本身并不具备地址,将芯片理论上的地址分配给存储器,这就是存储器映射。
在这里插入图片描述
stm32共有4GB的地址空间(实际上并没有这么多),数据字节以小端格式存放在存储器中,这4GB空间被分成8个主要块,4*1024MB/8=512MB,即每块大小为512MB,

二、寄存器映射原理

寄存器映射是在存储器映射的基础上进行的。
操作硬件本质上就是操作寄存器。在存储器片上外设区域,四字节为一个单元,每个单元对应不同的功能。当我们控制这些单元时就可以驱动外设工作,我们可以找到每个单元的起始地址,然后通过C 语言指针的操作方式来访问这些单元。但若每次都是通过这种方式访问地址,不好记忆且易出错。这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名实质上就是寄存器名字。给已分配好地址(通过存储器映射实现)的有特定功能的内存单元取别名的过程就叫寄存器映射。

三、GPIO端口的初始化设置

  • 1.导入所需要的库文件
  • 2.设置GPIO模式
  • 3.设置GPIO引脚
  • 4.可选的设置引脚的初始状态
  • 5.执行其他操作,比如读取引脚状态,或写入
  • 6.清理GPIO资源

四、问题一

相同点:

  • 都需要进行读写操作
  • 进行位操作
    不同点:
  • 内存中的变量通常可以直接读写,而对外部设备的操作通常需要通过特定的接口或协议进行通信。
  • 对外部设备的操作通常需要进行配置和初始化,确保设备正常工作。而对内存中的变量的修改操作通常不需要进行额外的配置或初始化

五、问题二

  • 51体系结构更加简单,采用的是8位单片机架构。
  • 51单片机通常具有较小的存储器和较少的外设资源,编程任务相对简单。而STM32有更多的存储器和丰富的外设资源,需要复杂的配置和管理。

参考使用chatgpt
https://blog.csdn.net/qq_46467126/article/details/120737655

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值