欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真

程序员文章站 2024-02-23 21:53:16
...

第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真



前言

上一章,简单介绍了 STM32F103 的 IO口作为输出的使用,这一章,我们将简单介绍如何使用 STM32F103的 IO口作为输入的使用。在本章中,我们将利用一个或者两个按键,(按键为任意IO口,有stm32F103板子需要结合原理图来选择IO口)来控制 LED 的亮灭。通过本章的学习,将了解到 STM32F1 的 IO 口作为输入口 的使用方法。


一、按键输入

STM32F103 的 IO口做输入使用的时候,是通过调用函数 HAL_GPIO_ReadPin来读取 IO 口的高低电平的状态来进行直接控制。这一章利用一个按键来控制两种情况下,灯效的变化,来体现出按键输入实验的效果。
具体的基础配置过程此处省略,详情参考:第一章 stm32 cubemx基础配置实验以及proteus 8的使用

二、使用步骤

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默认状态即可。
第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真
第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真

3.生成工程

1.选择复制所有库函数,这个选择会减慢编译的速度,但是会包含所有函数方便调用以及查看,建议初学者使用此项。
2.将所加入的外设功能代码生成单独的文件。
第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真

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);
     }

第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真

三.Proteus仿真或者烧录可直接看到效果。

直接烧录时一定要注意选择的IO口,与实际stm32板子的原理图相匹配。实验效果为未按下按键输入为高电平,呈现双闪效果,按下按键后输入低电平,呈现跑马灯效果。
仿真时此时较上一章加入了按键与上拉电阻,如图所示,具体过程请参考:第一章 stm32 cubemx基础配置实验以及proteus 8的使用
第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真

第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真
第二章 stm32 cubemx GPIO输入输出实验以及proteus仿真


总结

以上就是今天要讲的内容,本文介绍了GPIO用做输入输出时的使用以及利用Proteus仿真看到的效果,如果是在基础配置Cubemx或者基础操作Proteus时出现问题请参考:第一章 stm32 cubemx基础配置实验以及proteus 8的使用