2024蓝桥杯嵌入式模板代码详解

文章目录

      • 一、STM32CubeMx配置
      • 二、LED模板代码
      • 三、LCD模板代码

一、STM32CubeMx配置

打开STM32CubeMx,选择【File】->【New Project】,进入芯片选择界面,搜索到蓝桥杯官方的芯片型号,并点击收藏,下次直接点击收藏就可以找到对应的芯片,
请添加图片描述
打开工程后,首先点击【System Core】,准备配置RCC和SYS。点击【RCC】->【High Speed Clock(HSE)】->【Crystall/Ceramic Resonator】;【SYS】->【Debug】->【Serial Wire】。
请添加图片描述
请添加图片描述
配置时钟树,点击第二项【Clock Configuration】
在这里插入图片描述
结果图如下
在这里插入图片描述
点击第三项【Project Manager】
在这里插入图片描述在这里插入图片描述
打开Keil点击编译,看是否配置成功,点击魔法棒

在这里插入图片描述在这里插入图片描述
到此,编写代码的配置已经完成

二、LED模板代码

通过CT117E-M4产品手册查看。易知LED引脚为PC8~PC15,锁存器使能引脚PD2,CubeMX进行引脚的配置。将其配置为GPIO_Output。PC8-PC15配置为High,点击生成代码。
在这里插入图片描述此时Keil软件在运行就会弹出,点击确认重新编译就行。
:以后自己编译的代码只能写在Begin和End之间,不然下次配置完CubeMX后自己写的代码会消失。
在这里插入图片描述
打开项目文件夹,创建名为bsp的文件夹,以后自己编写的代码都存放于此。
在这里插入图片描述
keil文件里,点击项目名Demo_dzj,添加一个新的组,并改名为bsp

在这里插入图片描述
Ctrl+n创建两个文件,Ctrl+s保存到bsp文件里,并改名为lcd.c、lcd.h
在这里插入图片描述
首先在main.h中定义两个数据类型,这样以后就直接写uint、uchar,这样比较方便。最后Ctrl+s(编写代码时不时都要按这个快捷键,保存代码)。
在这里插入图片描述

typedef unsigned int uint;
typedef unsigned char uchar;

点击bsp文件,添加已存在的文件lcd.c
再点击魔术棒,选择【c/c++】,点击Include path右边的三个…的图标,添加头文件路径(路径不变,就只需要配置一次)。
在这里插入图片描述
在这里插入图片描述
led.h代码如下

#ifndef ___HAL_LED_
#define ___HAL_LED_#include "main.h"
void Disp_LED(uchar led);
#endif

led.c编写LED显示函数

#include "led.h"void Disp_LED(uchar led)			//led参数:选择那几个LED点亮
{HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_SET);    	//所有IO口置1HAL_GPIO_WritePin(GPIOC, led << 8, GPIO_PIN_RESET);				//高8位 为1的IO口点亮HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);				//开锁存器HAL_GPIO_WritePin(GPIOD,  GPIO_PIN_2, GPIO_PIN_RESET);		//关锁存器
}

main.c文件中直接添加对应头文件,main函数里初始化LED,while(1)里闪烁LD1。再次提醒代码只能写在Begin和End之间。
在这里插入图片描述
在这里插入图片描述
请添加图片描述

三、LCD模板代码

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

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

相关文章

【LeetCode: 39. 组合总和 + 递归】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

比特币减半倒计时:NFT 生态将受到怎样的影响?

BTC 减半倒计时仅剩不到 1 天&#xff0c;预计在 4 月 20 日迎来减半。当前区块奖励为 6.25 BTC&#xff0c;减半后区块奖励为 3.125 BTC&#xff0c;剩余区块为 253。比特币减半无疑是比特币发展史上最重要的事件之一&#xff0c;每当这一事件临近&#xff0c;整个加密社区都充…

每日三个JAVA经典面试题(四十二)

1.Java中的线程池如何帮助优化性能&#xff1f; Java中的线程池是一种重要的并发编程工具&#xff0c;它可以帮助优化性能的方式有以下几点&#xff1a; 资源管理&#xff1a;线程池可以管理并重用线程&#xff0c;而不是为每个任务都创建一个新的线程。这减少了线程创建和销毁…

Linux下SPI设备驱动实验:测试读取ICM20608设备中数据是否正常

一. 简介 前面文章实现了 SPI设备的读写功能&#xff0c;也对ICM20608设备中&#xff08;即SPI设备&#xff09;寄存器里的数据进行了读取。文章如下&#xff1a; Linux下SPI设备驱动实验&#xff1a;读取ICM20608设备的数据-CSDN博客 本文对驱动功能进行测试&#xff0c;即…

大数据平台搭建2024(二)

二&#xff1a;Hive安装 只在node01上操作 1 安装MySQL 8.0 最小化安装需要安装这个 yum install -y wget1-1 下载MySQL的yum源 wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm检查是否安装成功 rpm -qpl mysql80-community-release-el7-7.n…

c++使用spdlog库打日记

打日记 打日志的本质就是多输出&#xff0c;c没有自带的日志库&#xff0c;只能使用第三方库实现&#xff0c;当然&#xff0c;直接cout输出也可以&#xff0c;但是一般日志库都进行了优化&#xff0c;比我们使用cout输出的效率更高&#xff0c;同时效果也更好&#xff0c;这里…

解决navicat远程连接mysql 很慢(首次)

通过navicat链接的测试服务器的mysql数据库连接打开的很慢&#xff08;间隔一段时间没使用的情况,navicat 链接会自动断开&#xff0c;再次链接就很慢&#xff0c;之后就正常&#xff0c;平时没在意&#xff0c;今天有空就给他解决下&#xff09;&#xff0c;但是连接本地的mys…

深入解析 HTML 中的 `<a>` 标签及其丰富功能

引言 HTML 中的 <a> 标签是创建超链接的关键元素之一。除了常见的超链接功能&#xff0c;<a> 标签还具有许多丰富的功能&#xff0c;使得我们可以创建交互性强、丰富多样的链接体验。本文将深入讨论 <a> 标签的功能&#xff0c;并提供相关代码示例。 1. 创…

C++:类的作用域和类的实例化

四、类的作用域 类定义了一个新的作用域&#xff0c;类的成员都在类的作用域中。在类外定义类成员需要使用&#xff1a;&#xff1a;作用域操作符指明成员属于哪个类域。 class A { public:void Print(); private:int _a;char _b; }; void A::Print()//用::指定Print属于类A …

vue3【详解】 vue3 比 vue2 快的原因

使用 Proxy 实现响应式 vue3使用的 Proxy 在处理属性的读取和写入时&#xff0c;比vue2使用的defineProperty 有更好的性能&#xff08;速度加倍的同时&#xff0c;内存还能减半&#xff01;&#xff09; 更新类型标记 Patch Flag 在编译模板时&#xff08;将vue语法转换为js描…

基于Springboot的影城管理系统

基于SpringbootVue的影城管理系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页展示 电影信息 电影资讯 后台登录页 后台首页 用户管理 电影类型管理 放映…

基于TCC的分布式事务

优质博文&#xff1a;IT-BLOG-CN 一、分布式事务简介 分布式的架构中&#xff0c;分布式的事务是一个绕不过的挑战&#xff0c;微服务理念的流行让分布式的问题日益突出。 在公司内部&#xff0c; 笔者所接触的管理系统中实际上也存在着分布式事务。 这里假设有这三个系统&…

解线性方程组——直接解法:(Gauss)高斯消去法、列主元、全主元 | 北太天元

一、问题描述 对于线性方程组 A x b , A ( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋮ a n 1 a n 2 ⋯ a n n ) , b ( b 1 b 2 ⋮ b n ) Axb,\quad A\begin{pmatrix} a_{11} & a_{12} &\cdots &a_{1n}\\ a_{21} & a_{22} &\cdots &a_{2n}\\…

win11家庭中文版安装docker遇到Hyper-V启用失败,如何解决??

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

为什么要注册缅甸公司

缅甸作为东南亚新兴市场之一&#xff0c;吸引了越来越多的外国投资者前来开展业务。注册一家公司是在缅甸开展商业活动的第一步。以下是关于在缅甸注册公司的公司类型、注册要求以及注册优势的详细介绍。 在缅甸注册的外国公司主要有以下几种类型&#xff1a; 1、有限责任公司…

树状数组训练:差分应用,维护输出区间最值

差分应用 题目链接 #include<bits/stdc.h>using namespace std;int n, m; const int M 5e5 9; int tree[M];void update(int x, int y) {for (int pos x;pos < n;pos pos & (-pos))tree[pos] y; }int ask(int x) {int ans 0;for (int pos x;pos;pos - po…

PyQt程序:实现新版本的自动更新检测及下载(FTP服务器实现)

一、实现逻辑 本实例采用相对简单的逻辑实现,用户在客户端使用软件时点击“检测升级”按钮,连接至FTP服务器检索是否有新版本的.exe,如果有,下载最新的.exe安装升级。 本实例服务端待下载.exe所在目录结构 本实例客户端待更新.exe所在目录结构 二、搭建服务器 可以参考…

3. 无重复字符的最长子串/438. 找到字符串中所有字母异位词/560. 和为 K 的子数组

3. 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。 思路&#xff1a;想象一下我们…

90天精通Psim仿真--经典实战教程--第10天 Simcode DSP28335 LED控制

PSIM (Power Simulation) 是一款电力电子和电机控制仿真软件,而DSP28335是德州仪器(TI)的一款数字信号处理器(DSP)。如果你想要在PSIM的SimCoder环境中为DSP28335生成LED闪烁的代码,遵循以下步骤: 打开PSIM并创建模型: 首先,在PSIM中创建一个电路模型,该模型应包括DS…

贪心(贪婪)算法

主要思想 贪心算法的思想主要可以概括为“总是做出当前看起来最优的选择”&#xff0c;也就是不从整体上进行考虑&#xff0c;所得到的答案是某种意义上的局部最优解&#xff0c;不一定是整体最优解。 贪心算法没有固定算法框架&#xff0c;算法设计的关键是贪心策略的选择。…