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

embedded/2024/11/9 4:43:12/

文章目录

      • 一、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模板代码

LCD不需要配置引脚,直接导入官方的文件即可
第十五届蓝桥杯大赛省赛选手资源数据包(电子赛)\DP2024_ES(嵌式)\BSP\LCD_Driver\MDK5_LCD_HAL
请添加图片描述
分别将Src文件里的lcd.c和Inc文件里的fonts.hlcd.h添加到第一节我们创建的bsp文件夹里
请添加图片描述
打开Keil,添加已存在的文件到bsp中,在main.c函数led.h下面添加lcd.h头文件,点击编译。
打开Src文件中的main.c,并复制主要代码到keil中。
请添加图片描述
显示结果如下
请添加图片描述


http://www.ppmy.cn/embedded/23849.html

相关文章

前端开发攻略---用原生JS在网页中也能实现语音识别

1、语音识别的过程 语音识别涉及三个过程&#xff1a;首先&#xff0c;需要设备的麦克风接收这段语音&#xff1b;其次&#xff0c;语音识别服务器会根据一系列语法 (基本上&#xff0c;语法是你希望在具体的应用中能够识别出来的词汇) 来检查这段语音&#xff1b;最后&#xf…

笛卡尔树 ← AcWing 4279

【题目来源】https://www.acwing.com/problem/content/4282/【题目描述】 笛卡尔树是由一系列不同数字构成的二叉树。笛卡尔树满足堆的性质&#xff0c;笛卡尔树的中序遍历序列为构建其的原始序列。最小堆笛卡尔树表示满足小根堆性质的笛卡尔树。 例如&#xff0c;给定序列 {8,…

【Oracle】常用命令汇总

本文基于黑马程序员文档做的二次总结&#xff0c;如有侵权&#xff0c;请联系本人删除。 字段定义 创建表空间 create tablespace waterboss datafile c:\waterboss.dbf size 100m autoextend on next 10m;waterboss 为表空间名称 datafile 用于设置物理文件名称 size 用于设…

Mysql如何查询不需要Group by的字段

问题背景 在实际业务场景中&#xff0c;我们有时会对某些字段进行分组统计&#xff0c;并且需要查出多余字段展示。比方说根据机构id统计每个机构下有多少部门&#xff0c;字段展示机构名称、部门数量、机构id。 这时会提示查询的字段必须得在group by子句中&#xff0c;否则无…

day17-day20_项目实战项目部署

万信金融 项目部署 目标&#xff1a; 理解DevOps概念 能够使用Docker Compose部署项目 理解持续集成的作用 会使用Jenkins进行持续集成 1 DevOps介绍 1.1 什么是DevOps DevOps是Development和Operations两个词的缩写&#xff0c;引用百度百科的定义&#xff1a; DevOps…

Centos编译安装python3.9

Centos编译安装python3.9 2024年4月24日, 当前Linux环境只能下载tar.gz包, 然后编译安装, 不能直接使用yum快速安装 准备相关依赖 yum -y install epel-release yum -y update 安装开发者工具 yum groupinstall "Development Tools" -y yum install openssl-de…

【论文速读】|大语言模型(LLM)智能体可以自主利用1-day漏洞

本次分享论文&#xff1a; LLM Agents can Autonomously Exploit One-day Vulnerabilities 基本信息 原文作者&#xff1a;Richard Fang, Rohan Bindu, Akul Gupta, Daniel Kang 作者单位&#xff1a;无详细信息提供 关键词&#xff1a;大语言模型, 网络安全, 1-day漏洞, …

全志ARM-蜂鸣器

sh操作准备&#xff1a; 1.使Tab键的缩进和批量对齐为4格 在/etc/vim/vimrc 中添加一项配置 set tabstop 4; 也可以再加一行 set nu显示代码的行数 vim的设置&#xff0c;修改/etc/vim/vimrc文件&#xff0c;需要用超级用户权限 /etc/vim/vimrc set shiftwidth4 设置批量…