蓝桥杯物联网竞赛_STM32L071_4_按键控制

原理图:



当按键S1按下PC14接GND,为低电平

CubMX配置:

Keil配置:

main函数:

c 复制代码
while (1)
  {
    /* USER CODE END WHILE */
		OLED_ShowString(32, 0, "hello", 16);
    if(Function_KEY_S1Check() == 1){ 
			OLED_ShowString(16, 2, "key:", 16);
			OLED_ShowString(48, 2, "1", 16);
		}
		else{
			OLED_ShowString(16, 2, "key:", 16);
			OLED_ShowString(48, 2, "0", 16);
		}
    /* USER CODE BEGIN 3 */
  }

Function.c和.h函数:

c 复制代码
#include "Function.h"
#include "i2c.h"
#include "oled.h"

void OLED_Write(unsigned char type, unsigned char data){
	unsigned char Write_Data[2];
	Write_Data[0] = type;
	Write_Data[1] = data;
	HAL_I2C_Master_Transmit(&hi2c3, 0x78, Write_Data, 2, 0xff);
}


void Function_OledEnable(unsigned char ms){
	HAL_GPIO_WritePin(OLED_Power_GPIO_Port, OLED_Power_Pin, GPIO_PIN_RESET);
	HAL_Delay(ms);
	OLED_Init();
}

uint8_t Function_KEY_S1Check(void){
	if(HAL_GPIO_ReadPin(KEY_S1_GPIO_Port, KEY_S1_Pin) == GPIO_PIN_RESET) return (uint8_t) 1;
	else return (uint8_t) 0;
}
c 复制代码
#ifndef __FUNCTION__
#define __FUNCTION__
#include <stdint.h>

void OLED_Write(unsigned char type, unsigned char data);
void Function_OledEnable(unsigned char ms);
uint8_t Function_KEY_S1Check(void);
#endif

效果:

待更新...

拓展:

1.实验板GPIO引脚无论是上拉还是下拉都可以检测出外界输入的高电平还是低电平,这和模拟电路不一样模拟电路是1&01&1来判断,当模拟电路引脚默认电平为低即0,那么外界输入为1或者0它都不能判断,而实验板是通过输入电平是否能改变本引脚的电平大小来判断,外界输入电平导致本引脚电平变高,所以外界为高电平,外界输入导致本引脚变低外界为低电平

2.代码引用的头文件比较有意思,理论上通过头文件能将零散代码连在一起,个别报错还是能运行例如:

这里oled.c没有引用Function.h文件所以有个函数没有定义,报了红线

但是在main函数中这些代码通过头文件组合在一起了,能运行:

3.oled使能函数一定要放在i2c初始化函数后面,因为先将i2c初始化了才能传递信息,才能被oled接收,才能被显示:

相关推荐
安科瑞刘鸿鹏12 分钟前
工商业预付费系统组成架构及系统特点介绍
运维·物联网·安全·架构
哄娃睡觉1 小时前
stm32上拉电阻,1K,4.7K,5.6K,10K怎么选?
stm32
物联网平台1 小时前
通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA
物联网·iot
O。o.尊都假都1 小时前
STM32之看门狗(IWDG)
stm32·单片机·嵌入式硬件
梁下轻语的秋缘1 小时前
每日c/c++题 备战蓝桥杯(修理牛棚 Barn Repair)
c语言·c++·蓝桥杯
wuqingshun3141591 小时前
蓝桥杯 3. 涂色
c++·算法·职场和发展·蓝桥杯·深度优先
mikey棒棒棒1 小时前
蓝桥杯国14 不完整的算式
蓝桥杯·模拟
像风一样_1 小时前
蓝桥杯2025.5.23每日一题-儿童数
python·蓝桥杯
俺不是西瓜太郎´•ﻌ•`1 小时前
欧拉降幂(JAVA)蓝桥杯乘积幂次
java·开发语言·蓝桥杯
wuqingshun3141591 小时前
蓝桥杯 10. 安全序列
c++·算法·职场和发展·蓝桥杯·深度优先