STM32系列文章目录
前言
开发了好久的STM32,但一直没有总结博客,今天就来总结一下STM32系列博客,也算是自己记的笔记。 第一篇文章就从GPIO开始 IO口即input & out 输入与输出,单片机控制外设的一个重要方法。
以下参考STM32参考手册记录。
提示:以下是本篇文章正文内容,下面案例可供参考
一、GPIO功能描述
首先 STM32 的 IO 口可以由软件配置成如下 8 种模式: 1、输入浮空 2、输入上拉 3、输入下拉 4、模拟输入 5、开漏输出 6、推挽输出 7、推挽式复用功能 8、开漏复用功能 每个 IO 口可以自由编程,但 IO 口寄存器必须要按 32 位字被访问。
在 MDK 中是通过一个枚举类型定义的:
typedef enum
{ GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
输入输出方式作用: 1)作为普通GPIO 输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。 2)作为普通GPIO 输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。 3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。 4)作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。 5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。
二、GPIO寄存器配置
1.外设GPIO配置
2.GPIO寄存器
1.端口配置低寄存器(GPIOx_CRL)
2.端口配置高寄存器(GPIOx_CRH)
3.端口输入数据寄存器(GPIOx_IDR)
4.端口输出数据寄存器(GPIOx_ODR)
5.端口位设置/清除寄存器(GPIOx_BSRR)
6.端口位清除寄存器(GPIOx_BRR)
|