MM32初识(兼容STM32)
MM32初识(兼容STM32)
资源与开发环境
- keil 5.0
- MM32 miniboard
提要
- stm32入门(MM32兼容)
- 点亮LED思路简介
- GPIO配置
- stm32寄存器理解与操作步骤
分层抽象思想
对于数字逻辑硬件,能识别的只有二进制(0/1),我们的操作最终都会变成0/1的操作,只是我们聪明的计算机工程师在中间加入许多抽象层,使开发接见我们的自然语言,解放我们的记忆,使用编译器将转变ASCII为硬件识别的二进制代码。
下面是自己理解的stm32的基本抽象层次:
地址
对一个外设的操作,直接可以映射到外设地址的操作,这样做会使我们记忆一些苦涩的地址,更麻烦的是,书写的代码只能用与这款芯片,只要芯片的地址有任何改动,你都得仔细检查你的代码是否映射正确,没有移植性可言。
寄存器,结构体
使用C语言的结构体,将地址映射到一个有意义的名字上,然后再将其封装成结构体,这样我们对照着开发手册即可进行开发。但芯片升级了,我们只要修改最底层的地址与寄存器名字的映射文件即可进行一定的移植。然而,寄存器的可读性还是很差,每次阅读,或许你需要对照着开发手册的寄存器描述阅读,但也可以对外设的原理理解得更加清楚。
库函数
在寄存器的基础上,将外设的一些操作封装成函数,但需要配置外设时,可以直接调用该函数即可。应用方便,可读性强。
编程学习思路(点亮LED)(使用寄存器编程)
LED点亮思路
1、先查看原理图上LED的连接情况
由原理图可以知道LED灯与GPIO的链接情况。
LED点亮思路:配置GPIO输出高低电平控制LED的亮灭。
2、GPIO配置
这里点亮LED需要配置PA15/PB3/PB4/PB5四个引脚的输出
打开用户手册(UM_MM32_MiniBoard_Ver1.0)的GPIO一章进行GPIO输出的配置
GPIO配置思路
- 1、开启GPIO时钟(复位和时钟控制RCC一章)
- 2、GPIO输出模式配置,GPIOx_CRL/GPIOx_CRH寄存器配置成推挽输出模式
- 3、GPIO输出信号配置,GPIOx_ODR中配置输出高低电平
程序下载
使用keil编译之后下载到MM32的miniboard板上,按下复位键后即可看到LED等亮起。
参考资料
[1]. MM32 miniboard资料
形而上者谓之道 形而下者谓之器。