资讯动态

STM32笔记|GPIO八种工作模式+LED按键实验

发布时间:2026/8/24 14:40:19 来源:尧图企业网站定制
文章目录一、GPIO的8种工作模式核心概念区分二、IO的最大输出速度三、GPIO模块编程接口四、代码配置步骤LED闪烁主程序按钮控制LED主程序一、GPIO的8种工作模式根据数据手册中列出的每个I/O端口的特定硬件特征GPIO端口的每个位可以由软件分别配置成多种模式输入输出各4种GPIO工作模式库函数宏定义1通用输出推挽GPIO_Mode_Out_PP2通用输出开漏GPIO_Mode_Out_OD3复用输出推挽GPIO_Mode_AF_PP4复用输出开漏GPIO_Mode_AF_OD5输入上拉GPIO_Mode_IPU6输入下拉GPIO_Mode_IPD7输入浮空GPIO_Mode_IN_FLOATING8模拟模式GPIO_Mode_AIN核心概念区分输出通过写0或写1控制引脚输出低电压或高电压输入通过读取引脚是0还是1判断引脚输入的是低电压还是高电压通用由CPU直接控制复用由外设控制(如USART、SPI、12C等)推挽输出写0时N-MOS导通输出低电平写1时P-MOS导通输出高电平高低电平都有驱动能力开漏输出写0时N-MOS导通输出低电平写1时两个MOS都断开呈高阻态高电平需外部上拉电阻提供二、IO的最大输出速度IO最大输出速度向IO交替写0和1且输出不失真的最快速度。实际波形存在上升时间和下降时间并非理想方波。选取满足要求的最小值即可过于陡峭的边沿会增加耗电并引入EMI(电磁干扰)问题可选速度等级GPI0_Speed_2MHz、GPI0_Speed_10MHz、GPI0_Speed_50MHz三、GPIO模块编程接口序号编程接口作用1GPIO_Init初始化IO引脚2GPIO_WriteBit向输出数据寄存器写1个比特位3GPIO_ReadInputDataBit从输入数据寄存器读一个比特位4GPIO_ReadOutputDataBit从输出数据寄存器读一个比特位四、代码配置步骤1开启GPIOx时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE)//开启GPIO的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx,ENABLE);2初始化3使用GPIO_WriteBit控制引脚电平LED闪烁主程序#includestm32f10x.h#includedelay.hintmain(void){//开启GPIOC的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//初始化IO引脚PC13通用输出开漏模式 2MHzGPIO_InitTypeDef GPIO_InitStruct{0};GPIO_InitStruct.GPIO_PinGPIO_Pin_13;GPIO_InitStruct.GPIO_ModeGPIO_Mode_Out_OD;//开漏输出GPIO_InitStruct.GPIO_SpeedGPIO_Speed_2MHz;GPIO_Init(GPIOC,GPIO_InitStruct);while(1){GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);//亮Delay(100);GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);//灭Delay(100);}}按钮控制LED主程序#includestm32f10x.hintmain(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStruct{0};GPIO_InitStruct.GPIO_PinGPIO_Pin_0;GPIO_InitStruct.GPIO_ModeGPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_2MHz;GPIO_Init(GPIOA,GPIO_InitStruct);GPIO_InitStruct.GPIO_PinGPIO_Pin_1;GPIO_InitStruct.GPIO_ModeGPIO_Mode_IPU;GPIO_Init(GPIOA,GPIO_InitStruct);while(1){if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)Bit_RESET){GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//按下亮灯}else{GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//松开灭灯}}}

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价