STM32四:GPIO
一.概述
1.GPIO基本概念
- 通用输入输出端口(general purpose intput output),可以做输入也可以做输出,可通过程序配置成输入或者输出。
- GPIO具有八种工作模式,四种输入和四种输出
- 四种输入模式:浮空输入,上拉输入,下拉输入,模拟输入
- 四种输出模式:开漏输出,推挽输出,开漏复用输出,推挽复用输出
2.GPIO基本结构
3.八种模式概述
二.八种模式详解
1.浮空输入
2.上拉输入
3.下拉输入
4.模拟输入
5.开漏输出
6.开漏复用输出
7.推挽输出
8.推挽复用输出
三.相关寄存器
1.介绍
- stm32f1系列中以16个IO为一组通过7个寄存器控制
- 复用功能寄存器
(1)7个寄存器
(2)复用寄存器
2.寄存器地址映射
四.程序
1.点亮LED灯
1 void LED_Init(void){ //LED灯的接口初始化 2 GPIO_InitTypeDef GPIO_InitStructure; // GPIO初始化结构体 3 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE); //使能APB2总线的GPIO ABC 4 GPIO_InitStructure.GPIO_Pin = LED1 | LED2; //选择端口号(0~15或all) 5 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO接口工作方式 6 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度(2/10/50MHz) 7 GPIO_Init(LEDPORT, &GPIO_InitStructure); 8 } 9 10 /********************************************************************************************* 11 * 杜洋工作室 www.DoYoung.net 12 * 洋桃电子 www.DoYoung.net/YT 13 *********************************************************************************************/ 14 15 16 /* 17 选择IO接口工作方式: 18 GPIO_Mode_AIN 模拟输入 19 GPIO_Mode_IN_FLOATING 浮空输入 20 GPIO_Mode_IPD 下拉输入 21 GPIO_Mode_IPU 上拉输入 22 GPIO_Mode_Out_PP 推挽输出 23 GPIO_Mode_Out_OD 开漏输出 24 GPIO_Mode_AF_PP 复用推挽输出 25 GPIO_Mode_AF_OD 复用开漏输出 26 */
1 int main (void){//主程序 2 RCC_Configuration(); //时钟设置 3 LED_Init(); 4 while(1){ 5 6 //方法1: 7 GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1 8 delay_us(50000); //延时1秒 9 GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0 10 delay_us(50000); //延时1秒 11 12 //方法2: 13 // GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1-GPIO_ReadOutputDataBit(LEDPORT,LED1))); //取反LED1 14 // delay_ms(500); //延时1秒 15 16 //方法3: 17 // GPIO_SetBits(LEDPORT,LED1); //LED灯都为高电平(1) 18 // delay_s(1); //延时1秒 19 // GPIO_ResetBits(LEDPORT,LED1); //LED灯都为低电平(0) 20 // delay_s(1); //延时1秒 21 22 //方法4 23 // GPIO_Write(LEDPORT,0x0001); //直接数值操作将变量值写入LED 24 // delay_s(2); //延时1秒 25 // GPIO_Write(LEDPORT,0x0000); //直接数值操作将变量值写入LED 26 // delay_s(2); //延时1秒 27 28 } 29 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」