STM32通用I/O(GPIO)
从嵌入式开发实践中总结出来的教程,深入浅出地教大家怎样掌握STM32IO口的使用。所谓寄存器配置,其实就是通过直接操作寄存器相应的位,来实现某些特定功能,这种方法比较灵活,且操作简便,由于STM32寄存器太多,实际编程中,不建议牢记住这些寄存器,用到时再回来翻翻手册或者找度娘,看多了不然而然就记住了。此外本教程所讲到的IO配置方法也适用于库函数版本。
GPIO功能描述
GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似STM32 GPIOx Px1-Px15(例:GPIOA PA1,PA2),其接脚可以供开发者由程控自由使用,PIN脚依现实考量可作为通用输入与输出(INT/OUT),复用功能(AF),模拟配置(AIN)。
GPIO相关寄存器
1.GPIO端口模式寄存器GPIOx_MODER:
00输入(复位状态)01输出模式 10复用模式 11模拟模式
每两位配置一个IO端口模式(位31:0)
2.GPIO输出类型寄存器GPIOX_OTYPER:
0输出推挽 1输出开漏
每一位配置一个IO端口输出类型(位31:16保留
位15:0)
3.GPIO输出速度寄存器GPIOX_OSPEEDR:
00 2MHz 01 25MHz 10 50MHz 11 100MHz
每两位配置一个IO端口输出速率(位31:0)
4.GPIO上下拉寄存器GPIOX_PUPDR:
00无上下拉 01上拉 10下拉 11保留
每两位配置一个IO端口上下拉功能(位31:0)
5.GPIO输入寄存器GPIOX_IDR:
0保留复位值 1开启io口输入功能
每一位配置一个IO端口输入开关(位31:16保留
位15:0)
6.GPIOX_ODR输出寄存器:
0保留复位值 1开启io口输出功能
每一位配置一个IO端口输出开关(位31:16保留
位15:0)
7.GPIOX_BSRR置位复位寄存器:
位31:16(0不对ODRX寄存器复位 1对ODRX寄存器复
位)
位15:0(0不对ODRX寄存器置位 1对ODRX寄存器置
位)
每一位配置一个IO端口置复位(位31:16复位
位15:0置位)
8.GPIOX_LCKR配置锁定寄存器:
位31:17保留复位值 ;位16:锁定键 0端口配置锁定键未
激活 1端口配置已激活 ;
位15:0端口x锁定位ÿ