嵌入式蓝桥杯学习2 按键

Cubemx 配置

前面的配置和上一篇文章是一样的。

原文链接:https://blog.csdn.net/m0_74246768/article/details/144227188

打开cubemx。

(按键引脚PB0 PB1 PB2 PA0)

1.把四个按键引脚配置为GPIO_Input。

2.点击system Core中的GPIO,选择四个引脚进行配置

GPIO mode(模式):Input mode

GPIO Pull up/Pull down(上下拉):Pull up

点击GENERATE CODE.

代码编写

HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

参数说明:

GPIOx:GPIO名称,取值是GPIOA~GPIOG

GPIO_Pin:GPIO引脚,取值是GPIO_PIN_0 ~ GPIO_PIN_15

返回值:GPIO引脚状态(GPIO_PIN_RESET 或 GPIO_PIN_SET)

my_main.h

复制代码
#include "my_main.h"
uint8_t led_sta=0x01;
void LED_Disp(uint8_t dsLED)
{
	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC, dsLED<<8, GPIO_PIN_RESET);
	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_RESET);
}
uint8_t LED_chg(uint8_t num,uint8_t sta)
{
	uint8_t pos=0x01<<(num-1);
	led_sta=(led_sta&(~pos))|(pos*sta);
	LED_Disp(led_sta);
}
	
	
void setup()
{
	LED_Disp(0x00);
}
void loop()
{
	if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==0)
	{
		HAL_Delay(10);
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==0)
		{
			led_sta=(led_sta&0xfe)|0x01;
			led_sta=(led_sta&0xfd)|0x00;
			LED_Disp(led_sta);
			HAL_Delay(100);
		}
	}
	if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==0)
	{
		HAL_Delay(10);
		if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==0)
		{
			led_sta=(led_sta&0xfd)|0x02;
			led_sta=(led_sta&0xfe)|0x00;
			LED_Disp(led_sta);
			HAL_Delay(100);
		}
	}
}
相关推荐
怀念无所不能的你13 分钟前
acwing背包问题求方案数
学习·算法·动态规划·dp
Yingye Zhu(HPXXZYY)32 分钟前
洛谷P12238 [蓝桥杯 2023 国 Java A] 单词分类
c++·算法·蓝桥杯
LVerrrr32 分钟前
Missashe考研日记-day29
学习·考研
灏瀚星空37 分钟前
从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——线性代数与矩阵运算 | 矩阵基础
笔记·python·学习·线性代数·数学建模·金融·矩阵
qq_162911591 小时前
tigase源码学习杂记-IO处理的线程模型
java·学习·源码·xmpp·tigase·多线程io模型
viperrrrrrrrrr71 小时前
大数据学习(115)-hive与impala
大数据·hive·学习·impala
Y1nhl2 小时前
力扣hot100_普通数组_python版本
开发语言·python·算法·leetcode·职场和发展
名字不要太长 像我这样就好7 小时前
【iOS】OC源码阅读——alloc源码分析
笔记·学习·macos·ios·objective-c
conkl8 小时前
如何初入学习编程包含学习流程图
学习·流程图
程序员曦曦8 小时前
17:00开始面试,17:08就出来了,问的问题有点变态。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展