- 学习如何在KEIL新建一个工程,自己百度。
- 有启动文件:startup_stm32f10x_hd.s
- 有寄存器映射文件:stm32f10x.h
- 然后才是我们的main.c 文件
- 开始学习GPIO
GPIO理论原理部分
GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
除了IO引脚其他都为内部结构,VDD接3.3V电压,当输入正电压高于3.3V时二极管导通,起到保护作用。VSS接地,当输入负电压低于0时起保护作用。
输出部分:有推挽输出和开漏输出两种方式;
输入方面:有上拉输入和下拉输入;
使用GPIO的方式
GPIO详情
进入实际代码操作
1.寄存器编程(学51单片机时用的方法)
其中的运算非常有意思,仔细看就可以知道原理
- 由于STM32的外设很多,为了降低功耗,每个外设都对应着一个时钟,在芯片刚上电的时候这些时钟都是被关闭的,如果想要外设工作,必须把相应的时钟打开。
- 三步:开启时钟,配置引脚模式,控制电平
2.固件库编程(STM32新引入的一种方式)
原理:通过结构体封装GPIO的寄存器,枚举限制寄存器取值,定义位操作函数
操作函数代码太多,只是贴出一个例子
库编程其实就是官方将所有的端口都经过上面这些处理,之后的编程就成了这个样子的
下面进入标准库学习
学会库编程的关键:学会查文档,因为官方实现的标准库内容非常多
新建工程库文件版(还有其他设置省略)
GPIO输出—使用固件库点亮LED
GPIO输入—按键检测
等回学校实操
位带操作,自己百度