STM32CubeMx GPIO输入输出实验
一、实验说明
实验平台:STM32F103RCT6 (正点原子mini板)
实验内容:使用GPIO 点亮LED ,使用按键控制LED灯。
使用IO口:led1 PD2,LED2 PA8 .(低电平点亮) 。按键 PC5 按下输入低电平。
二、实验操作
1、基础配置
1)sys中,选好调试方式,例如jtag-4pin。
2)RCC时钟,晶振选择。
3)时钟树配置。
4)中断分组配置。
以上步骤可以参考串口中断实验。
2、外设配置—IO口配置
1)IO口基本配置。
如图配置PD2、PA8 为输出模式。
PC5 接的是按键所以配置为输入模式。
两个IO口接LED,配置为上图的参数。
PC5配置为输入模式,上拉。(因为PC5一端接GND,一端接IO口)
2)、生成代码
注意工程配置,和.c/.h 的添加。(串口中断实验有说明)
3)、编写代码
在gpio.c中可以看到如下代码,就是GPIO的配置。
然后我们在主函数中编写控制代码。
使用HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET); 这个函数就可以操作IO口,让IO口输出高电平和低电平。
该函数有三个参数,
第一个是那组IO。
第二个是那个IO口。
第三个是输出电平状态,GPIO_PIN_RESET为低,GPIO_PIN_SET为高。
下一步读取按键,控制LED(PA8),按下灯亮,抬起灯灭。
使用,HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_5) 函数判断io口的输入状态。
两个参数,一个是那组IO,另一个是那个IO口。
该函数会返回读取到输入的电平状态。
HAL_Delay(),是HAL 库提供的ms级延时函数。这里起消抖作用。
下载验证即可。