当前位置: 首页 > news >正文

蓝桥杯嵌入式速通(1)

1.工程准备

创建一文件夹存放自己的代码,并在mdk中include上文件夹地址

把所有自身代码的头文件都放在headfile头文件中,之后只需要在新的文件中引用headfile即可

headfile中先提前可加入

#include "stdio.h"
#include "string.h"
#include "stdint.h"

这三个c语言头文件的引用

2.led显示

u

LED是使用锁存器控制,使用了PC8-PC15去控制led的亮灭,PD2控制锁存器的启用和所存,当PD2为低电平时,锁存器所存当前状态,当PD2为高电平时,锁存器可以修改状态。

3.led闪烁

设置定时为1s

在中断中进行灯的操作

特别地:在使用中断的时候需要在主函数中对中断先使能    HAL_TIM_Base_Start_IT(&htim2);

4.lcd屏幕使用

将赛方提供的lcd驱动中的三个文件放进自己的code文件中

由于lcd和led的引脚复用问题,所以在使用lcd函数操作的时候需要防止led的引脚被操作

需要提前将lcd函数加入两行,如上,以做到在函数执行前后的GPIOC的状态不被改变

并且在使用lcd初始化部分将锁存器使能引脚打开,将led状态锁存

lcd的初始化部分至少初始化四个,lcd屏幕背景,文字背景,和文字颜色

lcd显示函数则使用sprintf将文字存入char变量中再转成int型使用lcd显示行字符的函数

5.按键

按键是        PB1.PB0.PA0.PB2

需要将按键设置为上拉输入,当按键没按下时,引脚是高电平,当按键按下时,引脚为低电平

判断按键是否按下

按键长按,可以通过定时器计时去实现

6.PWM波输出

1)占空比为CCR/ARR+1

2)PWM波输出需要使能        HAL_TIM_PWM_Start(&htimx,timchannelx)

7.TIM输入捕获

输入捕获就是两次上升(下降)沿,HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1)会对CNT进行一个保存

 8.ADC测量

配置对应引脚的adc状态

后可以用采集到的adc_value/4096*3.3得到电压,因为adc的采集到的值是0-4096

9.串口通信

对串口一选择异步通信

可以利用中断回调函数对接受到字符的时候做一些处理

  特别地要在主函数中使用  HAL_UART_Receive_IT(&huart1, &rx_data, 1);

并且在中断回调结束语句中再使用一次,可以保证每次在接受完毕后再次开启接受中断,并且接受中断只能接受一个字节,所以需要接受到的字节存起来

**关于特殊字符的接受,可以使用sscanf函数将数据分开存储

相关文章:

蓝桥杯嵌入式速通(1)

1.工程准备 创建一文件夹存放自己的代码,并在mdk中include上文件夹地址 把所有自身代码的头文件都放在headfile头文件中,之后只需要在新的文件中引用headfile即可 headfile中先提前可加入 #include "stdio.h" #include "string.h"…...

Redis优化建议详解

Redis优化建议详解 1. 内存优化 1.1 内存配置 设置最大内存 maxmemory 4gb 内存淘汰策略 maxmemory-policy allkeys-lru 样本数量 maxmemory-samples 51.2 内存优化策略 数据结构优化 使用压缩列表(ziplist)合理设置hash-max-ziplist-entries使用整数…...

ceph 存储 full 阈值调整

前言 在 Ceph 集群中,默认情况下,当某些 OSD(对象存储守护进程)的使用率达到 85% 时,系统会发出 nearfull 警告,并可能限制进一步的写入操作,以防止数据丢失或集群不稳定。 要允许在 OSD 使用率超过 85% 的情况下继续写入,您可以调整以下两个参数: mon_osd_nearful…...

后端技术选型 sa-token校验学习 下 结合项目学习 后端鉴权

目录 后端注册拦截器 实现对 WebMvcConfigurer 接口的类实现 静态变量 方法重写 注册 Spring Framework拦截器 Sa-Token中SaServletFilter拦截器 思考 为什么使用两个拦截器 1. Spring Framework 拦截器 2. SaServletFilter 为什么要注册两个拦截器? 总结 …...

Vue.js组件开发-实现组件切换效果的两种方法 条件渲染、动态组件

在Vue.js中&#xff0c;实现组件切换效果通常依赖于条件渲染或动态组件。 方法一&#xff1a;条件渲染 条件渲染使用v-if、v-else-if和v-else指令来根据条件展示或隐藏组件。这种方法适用于需要在不同条件下展示不同组件的场景。 <template><div><button cli…...

primitive 的 Appearance编写着色器材质

import { nextTick, onMounted, ref } from vue import * as Cesium from cesium import gsap from gsaponMounted(() > { ... })// 1、创建矩形几何体&#xff0c;Cesium.RectangleGeometry&#xff1a;几何体&#xff0c;Rectangle&#xff1a;矩形 let rectGeometry new…...

Seata搭建

1.初识Seata Quick Start | Apache Seata 官网 2.准备nacos和 seata 启动nacos startup.cmd -m standalone账号nacos 密码nacos 搭建seata TC 这里下载的 1.4.2 seata-server-1.4.2 1.修改seata配置文件 registry.conf 这里我们使用nacos作为注册中心 和 配置中心 r…...

流浪猫流浪狗领养PHP网站源码

源码介绍 流浪猫流浪狗领养PHP网站源码&#xff0c;适合做猫狗宠物类的发信息发布。当然其他信息发布也是可以的。 导入数据库&#xff0c;修改数据库配置/application/database.php 设置TP伪静态&#xff0c;设置运行目录&#xff0c; 后台&#xff1a;/abcd.php/dashboard?…...

asammdf python 处理MF4文件库简介

asammdf 是一个功能强大的 Python 库&#xff0c;专门用于处理汽车行业常用的 MDF&#xff08;Measured Data Format&#xff09;文件。以下是 asammdf 的主要功能总结&#xff1a; 主要功能 读取和写入 MDF 文件&#xff1a; 支持 MDF 文件的版本 3.x 和 4.x。 能够读取和…...

【“软件工程”基础概念学习】

基础和相关概念 英文&#xff1a;Software Engineering 软&#xff1a;物体内部的组织疏松&#xff0c;受外力作用后容易改变形状软件&#xff1a; 计算机系统的组成部分&#xff0c;是指挥计算机进行计算、判断、处理信息的程序系统。通常分为系统软件和应用软件。借指某项活…...

省森林防火应急指挥系统

森林防火形势严峻 我国森林防火形势十分严峻&#xff0c;森林火灾具有季节性强、发现难、成灾迅速等特点&#xff0c;且扑救难度大、影响范围广、造成的损失重。因此&#xff0c;构建森林防火应急指挥系统显得尤为重要。 系统建设模式与架构 森林防火应急指挥系统采用大智慧…...

一键整理背包界面功能

一键整理功能 游戏《帕鲁》中的背包界面有一键整理的功能,就是玩家随意拖拽背包格子里的物品,然后导致背包界面看起来很凌乱,比如物品a在一个格子里数量为1,另一个格子里数量为3,或者还有空格杂夹在有物品的格子旁边,一键排序功能可以解决这个问题,(将相同物品整合到一…...

给DevOps加点料:融入安全性的DevSecOps

从前&#xff0c;安全防护只是特定团队的责任&#xff0c;在开发的最后阶段才会介入。当开发周期长达数月、甚至数年时&#xff0c;这样做没什么问题&#xff1b;但是现在&#xff0c;这种做法现在已经行不通了。 采用 DevOps 可以有效推进快速频繁的开发周期&#xff08;有时…...

uniapp 使用 pinia 状态持久化

1.创建文件 stores -index.js -global.js2.对应文件内容 index.js 安装插件 npm i pinia-plugin-persistedstate import { createPinia } from pinia; import persist from pinia-plugin-persistedstate; const pinia createPinia(); pinia.use(persist); export default pi…...

HarmonyOS鸿蒙-@State@Prop装饰器限制条件

一、组件Components级别的状态管理&#xff1a; State组件内状态限制条件 1.State装饰的变量必须初始化&#xff0c;否则编译期会报错。 // 错误写法&#xff0c;编译报错 State count: number;// 正确写法 State count: number 10; 2.嵌套属性的赋值观察不到。 // 嵌套的…...

Java Web开发进阶——Spring Boot与Spring Data JPA

Spring Data JPA 是 Spring 提供的一种面向数据访问的持久化框架&#xff0c;它简化了 JPA 的实现&#xff0c;为开发者提供了一种快速操作数据库的方式。在结合 Spring Boot 使用时&#xff0c;开发者能够快速完成数据库访问层的开发。 1. 介绍Spring Data JPA 1.1 什么是Spr…...

Vue Router4

Vue Router 是 Vue.js 官方的路由管理器。Vue Router 基于路由和组件的映射关系&#xff0c;监听页面路径的变化&#xff0c;渲染对应的组件。 安装&#xff1a; npm install vue-router。 基本使用&#xff1a; // src/router/index.js import {createRouter, createWebHa…...

计算机网络之---应用层协议概述

应用层协议概述 应用层协议是OSI模型中的第7层&#xff08;应用层&#xff09;定义的一组规则&#xff0c;用于支持和管理不同应用程序之间的通信。应用层协议定义了数据交换的格式、规则和约定&#xff0c;使得不同的系统或应用能够互相理解并正确地交换数据。它直接面向用户并…...

html + css 顶部滚动通知栏示例

前言 在现代网页设计中&#xff0c;一个吸引人的顶部滚动通知栏不仅能够有效传达重要信息&#xff0c;还能提升用户体验。通过使用HTML和CSS&#xff0c;我们可以创建既美观又功能强大的组件&#xff0c;这些组件可以在不影响网站整体性能的情况下提供实时更新或紧急通知。 本…...

【Rust自学】11.6. 控制测试运行:并行和串行(连续执行)测试

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.6.1. 控制测试的运行方式 cargo test和cargo run一样&#xff0c;cargo test也会编译代码并生成一个二进制文件用于测试&#xff0c;…...

Claude Code 之父:2026 年我一行代码都没写,编程已被 AI 解决

2026 年&#xff0c;你还在一行一行敲代码吗&#xff1f;Claude Code 的创造者、Anthropic 核心人物 Boris Cherny&#xff0c;在公开访谈里抛出一句让整个行业震动的话&#xff1a;2026 年到现在&#xff0c;我没有写过一行代码。所有开发工作&#xff0c;100% 交给 AI 代理完…...

别再手动改路径了!用LabVIEW + MATLAB Script做自动化测试,这份环境配置指南让你效率翻倍

LabVIEW与MATLAB深度整合&#xff1a;构建自动化测试系统的工程实践指南在工业自动化与测试测量领域&#xff0c;LabVIEW和MATLAB的组合堪称黄金搭档。LabVIEW擅长硬件接口和实时控制&#xff0c;而MATLAB在算法开发和数据分析方面具有无可比拟的优势。本文将深入探讨如何将两者…...

ARMv8 HFGITR_EL2寄存器解析与虚拟化指令陷阱控制

1. AArch64 HFGITR_EL2寄存器架构解析HFGITR_EL2&#xff08;Hypervisor Fine-Grained Instruction Trap Register&#xff09;是ARMv8架构中专门用于指令级陷阱控制的系统寄存器&#xff0c;属于虚拟化扩展的重要组成部分。这个64位寄存器通过位映射机制实现对特定AArch64指令…...

Python基础语法:生成器 generator(yield)

一、简介根据指定的规则循环生成数据&#xff0c;当条件不成立时则生成数据结束。数据不是一次性全部生成出来&#xff0c;而是使用一个&#xff0c;再生成一个&#xff0c;好处是可以节约大量的内存。就像设计模式中的懒汉式。适合处理大数据或流数。生成器是一种特殊的迭代器…...

全链路压测实战:双十一级别的流量,我是这样扛住的

作为一名在质量保障领域摸爬滚打多年的测试工程师&#xff0c;我深知传统的单接口压测在如今分布式架构下的无力感。当业务流量达到双十一这种脉冲式、高并发的级别时&#xff0c;任何一个非核心链路上的“短板”都可能引发系统性的雪崩。全链路压测不再是选择题&#xff0c;而…...

终极免费方案:WandEnhancer完整解锁WeMod Pro功能快速指南

终极免费方案&#xff1a;WandEnhancer完整解锁WeMod Pro功能快速指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否渴望享受WeMod Pro会员的所…...

机器学习与SHAP在教育公平研究中的应用:精准定位学业困境根源

1. 项目概述&#xff1a;当机器学习遇见教育公平&#xff0c;我们如何精准定位学业困境的根源&#xff1f;在拉丁美洲的教育研究领域&#xff0c;一个长期困扰政策制定者和研究者的核心问题是&#xff1a;究竟是什么因素&#xff0c;在复杂的社会经济背景下&#xff0c;系统性地…...

搞定这 5 个全栈电商项目,面试别再用 Todo-List 凑数了

找独立开发练手项目或者写简历项目时&#xff0c;最忌讳两件事&#xff1a;一是太简单&#xff08;纯前端 Mock 数据&#xff0c;点两下就没了&#xff09;&#xff0c;二是太假&#xff08;一上来就硬套微服务、消息队列、高并发&#xff0c;结果自己根本Hold不住&#xff09;…...

账务台账数据

银行里说的 “账务台账数据”&#xff0c;本质就是按会计规则把每笔业务逐笔、分户、分科目记下来的完整明细流水 余额 辅助信息&#xff0c;核心是 “可逐笔追溯、可对账、可审计” 的一套明细数据。下面用通俗、具体的方式拆开说&#xff1a;一、银行 “账务台账” 到底是什…...

【DeepSeek漏洞扫描辅助实战指南】:20年安全专家亲授3大避坑法则与5步提效流程

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek漏洞扫描辅助的核心价值与适用边界 DeepSeek漏洞扫描辅助并非通用型渗透测试引擎&#xff0c;而是一个聚焦于大语言模型&#xff08;LLM&#xff09;应用层安全的轻量级分析工具。其核心价值在…...