蓝桥杯物联网竞赛_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接收,才能被显示:

相关推荐
行之无边8 小时前
零基础入门物联网-远程门禁开关:硬件介绍
物联网
编程墨客11 小时前
STM32F103C8T6单片机内部执行原理及启动流程详解
stm32·单片机·嵌入式硬件
TDengine (老段)12 小时前
TDengine 数据库建模最佳实践
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
行之无边12 小时前
零基础入门物联网-远程门禁开关:云平台创建
物联网
Gauss松鼠会12 小时前
GaussDB应用场景全景解析:从金融核心到物联网的分布式数据库实践
数据库·分布式·物联网·金融·database·gaussdb
Wangshanjie_9813 小时前
【STM32】-SPI通讯
stm32
吃货界的硬件攻城狮16 小时前
【STM32 学习笔记】SPI通信协议
笔记·stm32·学习
努力的小帅16 小时前
STM32单片机_3
stm32·单片机·嵌入式硬件·学习·stm32c8t6
Do vis82419 小时前
STM32第十九天 ESP8266-01S和电脑实现串口通信(2)
stm32·单片机·嵌入式硬件
LuDvei19 小时前
CH9121T电路及配置详解
服务器·嵌入式硬件·物联网·网络协议·tcp/ip·网络安全·信号处理