前言
上一章,简单介绍了 STM32F103 的 IO口作为输出的使用,这一章,我们将简单介绍如何使用 STM32F103的 IO口作为输入的使用。在本章中,我们将利用一个或者两个按键,(按键为任意IO口,有stm32F103板子需要结合原理图来选择IO口)来控制 LED 的亮灭。通过本章的学习,将了解到 STM32F1 的 IO 口作为输入口 的使用方法。
一、按键输入
STM32F103 的 IO口做输入使用的时候,是通过调用函数 HAL_GPIO_ReadPin来读取 IO 口的高低电平的状态来进行直接控制。这一章利用一个按键来控制两种情况下,灯效的变化,来体现出按键输入实验的效果。
具体的基础配置过程此处省略,
二、使用步骤
1.基础配置
1)sys中,选好调试方式,DEBUG中选中Serial Wire,实际上板子测试时会占用PA13和PA14两个I/O口,用作下载或者调试。
2)RCC时钟,晶振选择,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator,外部低速时钟(LSE)可有可无。
3)时钟配置,记录系统时钟频率,这里是72M用作仿真时选择芯片的晶振频率。
4)其他配置此工程不用,暂不配置。
2.配置引脚
点击想要用到的引脚,鼠标左击选择GPIO_INPUT,GPIO_OUTPUT,我用到了PA1、PA4、PA5(自选)三个引脚,PA1作为按键的引脚,PA4、PA5两个引脚作为两个LED灯引脚,其他配置为cubemx默认状态即可。
3.生成工程
1.选择复制所有库函数,这个选择会减慢编译的速度,但是会包含所有函数方便调用以及查看,建议初学者使用此项。
2.将所加入的外设功能代码生成单独的文件。
4.找到主函数,添加程序,编译,生成HEX文件
//if( HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)== 1)//如果没有设置标签
if( HAL_GPIO_ReadPin(BUTTON_GPIO_Port, BUTTON_Pin)== 1)//双闪
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
HAL_Delay(100);
}
else //跑马灯
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
HAL_Delay(100);
}
三.Proteus仿真或者烧录可直接看到效果。
直接烧录时一定要注意选择的IO口,与实际stm32板子的原理图相匹配。实验效果为未按下按键输入为高电平,呈现双闪效果,按下按键后输入低电平,呈现跑马灯效果。
仿真时此时较上一章加入了按键与上拉电阻,如图所示,
总结
以上就是今天要讲的内容,本文介绍了GPIO用做输入输出时的使用以及利用Proteus仿真看到的效果。
前言
上一章,简单介绍了 STM32F103 的 IO口作为输出的使用,这一章,我们将简单介绍如何使用 STM32F103的 IO口作为输入的使用。在本章中,我们将利用一个或者两个按键,(按键为任意IO口,有stm32F103板子需要结合原理图来选择IO口)来控制 LED 的亮灭。通过本章的学习,将了解到 STM32F1 的 IO 口作为输入口 的使用方法。
一、按键输入
STM32F103 的 IO口做输入使用的时候,是通过调用函数 HAL_GPIO_ReadPin来读取 IO 口的高低电平的状态来进行直接控制。这一章利用一个按键来控制两种情况下,灯效的变化,来体现出按键输入实验的效果。
具体的基础配置过程此处省略,
二、使用步骤
1.基础配置
1)sys中,选好调试方式,DEBUG中选中Serial Wire,实际上板子测试时会占用PA13和PA14两个I/O口,用作下载或者调试。
2)RCC时钟,晶振选择,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator,外部低速时钟(LSE)可有可无。
3)时钟配置,记录系统时钟频率,这里是72M用作仿真时选择芯片的晶振频率。
4)其他配置此工程不用,暂不配置。
2.配置引脚
点击想要用到的引脚,鼠标左击选择GPIO_INPUT,GPIO_OUTPUT,我用到了PA1、PA4、PA5(自选)三个引脚,PA1作为按键的引脚,PA4、PA5两个引脚作为两个LED灯引脚,其他配置为cubemx默认状态即可。
3.生成工程
1.选择复制所有库函数,这个选择会减慢编译的速度,但是会包含所有函数方便调用以及查看,建议初学者使用此项。
2.将所加入的外设功能代码生成单独的文件。
4.找到主函数,添加程序,编译,生成HEX文件
//if( HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1)== 1)//如果没有设置标签
if( HAL_GPIO_ReadPin(BUTTON_GPIO_Port, BUTTON_Pin)== 1)//双闪
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
HAL_Delay(100);
}
else //跑马灯
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
HAL_Delay(100);
}
三.Proteus仿真或者烧录可直接看到效果。
直接烧录时一定要注意选择的IO口,与实际stm32板子的原理图相匹配。实验效果为未按下按键输入为高电平,呈现双闪效果,按下按键后输入低电平,呈现跑马灯效果。
仿真时此时较上一章加入了按键与上拉电阻,如图所示,
总结
以上就是今天要讲的内容,本文介绍了GPIO用做输入输出时的使用以及利用Proteus仿真看到的效果。
举报