完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前言
上一章,简单介绍了 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仿真看到的效果。 |
|
|
|
只有小组成员才能发言,加入小组>>
2528 浏览 0 评论
1118浏览 2评论
725浏览 1评论
477浏览 0评论
225浏览 0评论
370浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 03:08 , Processed in 3.064341 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号