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

原理图:

在这里插入图片描述
在这里插入图片描述
当按键S1按下PC14接GND,为低电平

CubMX配置:

在这里插入图片描述

Keil配置:

main函数:

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函数:

#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;
}
#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接收,才能被显示:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/168571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FANUC机器人到达某个点位时,为什么不显示@符号?

FANUC机器人到达某个点位时,为什么不显示@符号? 该功能由变量$MNDSP_POSCF = 0(不显示)/1(显示)/2(光标移动该行显示) 控制,该变量设置为不同的值,则启用对应的功能。 如下图所示,为该变量设置不同的值时的对比, 其他常用的系统变量可参考以下内容: 在R寄存器指定速度…

什么是AWS CodeWhisperer?

AWS CodeWhisperer https://aws.amazon.com/cn/codewhisperer/ CodeWhisperer 经过数十亿行代码的训练&#xff0c;可以根据您的评论和现有代码实时生成从代码片段到全函数的代码建议。 ✔ 为您量身定制的实时 AI 代码生成器 ✔ 支持热门编程语言和 IDE ✔ 针对 AWS 服务的优…

java设计模式学习之【工厂模式】

文章目录 引言工厂方法模式简介定义与用途&#xff1a;实现方式&#xff1a; 使用场景优势与劣势工厂模式在spring中的应用电费计算示例&#xff08;简单工厂模式&#xff09;改善为方法工厂模式代码地址 引言 在软件开发的世界中&#xff0c;对象的创建可能是一个复杂且重复的…

网安融合新进展:Check Point+七云网络联合研发,加固大型企业边缘、分支侧安全

AI 爆火、万物互联&#xff0c;底层需要更灵活的网络设施提供支撑。据国际分析机构 Gartner 预测&#xff0c;到 2024 年&#xff0c;SD-WAN&#xff08;软件定义的广域网&#xff09;使用率将达到 60%。不过边缘和终端兴起&#xff0c;未经过数据中心的流量也在成为新的安全风…

Spring Boot Actuator 2.2.5 基本使用

1. pom文件 &#xff0c;添加 Actuator 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2.application.properties 文件中添加以下配置 …

LLMLingua:集成LlamaIndex,对提示进行压缩,提供大语言模型的高效推理

大型语言模型(llm)的出现刺激了多个领域的创新。但是在思维链(CoT)提示和情境学习(ICL)等策略的驱动下&#xff0c;提示的复杂性不断增加&#xff0c;这给计算带来了挑战。这些冗长的提示需要大量的资源来进行推理&#xff0c;因此需要高效的解决方案&#xff0c;本文将介绍LLM…

MATLAB实战 | MEX文件

应用接口是MATLAB与其他语言相互调用各自函数的方法&#xff0c;MEX文件使MATLAB程序中可以调用或链接其他语言编写的函数&#xff0c;而MATLAB引擎使其他语言程序中可以调用MATLAB函数。 01、MEX文件 MEX是MATLAB Executable的缩写&#xff0c;是MATLAB中用于调用其他语言编写…

Leetcode103 二叉树的锯齿形层序遍历

二叉树的锯齿形层序遍历 题解1 层序遍历双向队列 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 提示&#xff1a…

【计算机网络】(网络层)定长掩码和变长掩码

目录 1、IPV4地址的应用规划 2、例题分析 2.1、定长的子网掩码 2.2、变长的子网掩码 1、IPV4地址的应用规划 定长的子网掩码&#xff08;FLSM&#xff09;&#xff1a; 使用同一个子网掩码划分子网&#xff0c;每个子网所分配的IP地址数量相同&#xff0c;造成IP地址的浪费…

腾讯云发布新一代基于AMD处理器的星星海云服务器实例SA5

基础设施的硬实力&#xff0c;愈发成为云厂商的核心竞争力。 11月24日&#xff0c;腾讯云发布了全新一代星星海服务器。基于自研服务器的高密设计与硬件升级&#xff0c;对应云服务器SA5是全球首家搭载第四代AMD EPYC处理器&#xff08;Bergamo&#xff09;的公有云实例&#…

京东数据分析:2023年10月京东彩妆销售大数据采集

鲸参谋监测的京东平台10月份彩妆市场销售数据已出炉&#xff01; 鲸参谋数据显示&#xff0c;今年10月份&#xff0c;京东平台上彩妆市场的销量将近430万&#xff0c;环比增长约21%&#xff0c;同比下滑约3%&#xff1b;销售额将近5.8亿&#xff0c;环比增长约7%&#xff0c;同…

web静态网页设计与制作-基于HTML+CSS+JS实现旅游摄影网站

web静态网页设计与制作&#xff0c;基于HTMLCSSJS实现精美的旅游摄影网站&#xff0c;拥有极简的设计风格&#xff0c;丰富的交互动效&#xff0c;让人眼前一亮&#xff0c;享受视觉上的体验。 我使用了基本的HTML结构来构建网页&#xff0c;并使用CSS样式进行美化设计&#xf…

NB-IoT BC260Y Open CPU平台篇②AEP物联网平台天翼物联CWing

NB-IoT BC260Y Open CPU平台篇②AEP物联网平台天翼物联CWing 1、注册账号2、创建属于自己项目的产品3、协议解析:4、添加设备5、设备模拟测试:6、设备调试:最近做了几个项目,都是将终端产品连接到天翼物联Cwing平台和Onenet平台,个人感觉这2个平台功能还是挺全的比较好用。…

分布式篇---第五篇

系列文章目录 文章目录 系列文章目录前言一、你知道哪些限流算法?二、说说什么是计数器(固定窗口)算法三、说说什么是滑动窗口算法前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去…

二维数值型数组例题2

1、内部和 题目描述 给定一个m行n列的二维矩阵&#xff0c;求其内部元素和 输入要求 第一行为两个整数&#xff1a;m和n&#xff08;0<m,n<10&#xff09;&#xff0c;接下来输入m*n的二维矩阵 输出要求 二维矩阵内部元素和 输入样例 3 3 1 2 3 4 5 6 7 8 9 …

RK3399 板子烧录Armbian

本来不想写在CSDN这里的。帮有需要的同学了吧。 板子上面标记型号为&#xff1a; GC18-108-RK3399-V2.0TEAN E120339 94V-OML1没有HDMI接口&#xff08;我也是汗&#xff0c;买的时候注意到&#xff0c;坑了&#xff09;&#xff0c;配置信息。 CPU : RK3399RAMROM: 4G16G无…

DNS 区域传输 (AXFR)

漏洞描述 docker环境搭建 使用 AXFR 协议的 DNS 区域传输是跨 DNS 服务器复制 DNS 记录的最简单机制。为了避免在多个 DNS 服务器上编辑信息&#xff0c;可以在一台服务器上编辑信息&#xff0c;并使用 AXFR 将信息复制到其他服务器。但是&#xff0c;如果您不保护您的服务器&…

JavaScript 数据类型转换

JavaScript 数据类型转换 目录 JavaScript 数据类型转换 一、类型转换简介 1、字符串型转换为数值型 2、数值型转换为字符串型 一、类型转换简介 所谓的类型转换&#xff0c;就是将一种数据类型转换为另外一种数据类型&#xff0c;例如上一节课说到的&#xff0c;如果一个…

【web】Fastapi自动生成接口文档(Swagger、ReDoc )

简介 FastAPI是流行的Python web框架&#xff0c;适用于开发高吞吐量API和微服务&#xff08;直接支持异步编程&#xff09; FastAPI的优势之一&#xff1a;通过提供高级抽象和自动数据模型转换&#xff0c;简化请求数据的处理&#xff08;用户不需要手动处理原始请求数据&am…

pgz easyexcel如何给excel文件添加自定义属性

免费API方式 直接上传URL,自定义修改Excel 视频演示【内含接口地址】 https://www.ixigua.com/7304510132812153385 前情提示 | 功能说明 多选仅支持微软office、office365系列Excel。因为WPS宏功能需要企业版且付费生成xlsx、xlsm等文件,office和WPS均可以打开,均可以单…