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

相关推荐
✎ ﹏梦醒͜ღ҉繁华落℘3 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
大鱼>3 天前
大语言模型+物联网:LLM理解物理世界
物联网·struts·语言模型·多模态·aiot
果丁智能3 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
国产化创客3 天前
ESP32 CameraWebServer 原生摄像头项目全解析
物联网·开源·嵌入式·实时音视频·智能硬件
谁似人间西林客3 天前
数据智能怎么赋能工业制造?物联网场景落地方法解析
物联网·制造
牛根生同志3 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
InHand云飞小白3 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
MetrixAeroCore3 天前
Metrix 国际物联网卡资费方案|多场景共享流量池·按需扩容
物联网
goldenrolan3 天前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外