【蓝桥杯嵌入式·真题解析】第十三届蓝桥杯嵌入式设计与开发项目省赛(第二场)——程序设计试题

本文详析第十三届蓝桥杯嵌入式设计省赛(第二场)程序设计试题,涵盖按键、LED、Systick、TIM、串口、EEPROM及LCD等模块,提供思路分析与程序设计,适合备赛参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:本文为作者对第十三届蓝桥杯嵌入式设计与开发项目省赛(第二场)——程序设计试题的解析。本文包括“题目要求”、“程序设计”、“效果展示”3个部分。供复盘使用。若发现错误之处,请不吝赐教。

链接:蓝桥杯嵌入式方向备赛记录(STM32G431)为作者备赛蓝桥杯嵌入式过程中,整理的学习总结。包括各模块使用要点、各模块程序等,基本搭建好工程框架,给出了各模块处理程序。

 写在前面:本道题在EEPROM上稍有难度,其他部分在内容和难度上和第一场差不多。

目        录

一、 题目要求

二、程序设计

(一)思路分析

1、涉及考点

2、几条主线

3、注意点

(二)程序设计

1、按键

2、LED

3、Systic

4、TIM

5、串口

6、EEPROM

7、LCD

8、整合

三、效果展示


一、 题目要求

二、程序设计

(一)思路分析

前期已准备好模块程序、搭建好工程框架,下面结合本道题,实际分析工程思路:

1、涉及考点

      按键、LED、EEPROM、定时器、串口、LCD等。

2、几条主线

(1)按键:要完成按键检测+功能处理。“按键检测”使用模块程序(非阻塞+移位消抖)即可。下面分析具体功能:B1:界面切换按键,程序上改变界面状态标志位即可;B2、B3:分别对应商品X、Y,在不同界面下按下按键,改变对应商品的购买数量、单价、库存,通过运算符对变量处理即可;B4:确认按键,处理好变量关系即可。

(2)LED

LED指示灯要求

主要是LD1亮5秒,LD2以0.1秒为间隔闪:LD1点亮5秒后熄灭,可以通过Systic秒计数实现;LD2以0.1秒为间隔闪烁,可以通过设置LED处理函数刷新时间为0.1秒来实现(在LED处理函数中,if语句,库存量均为0时,翻转对应引脚。该函数0.1秒刷新一次,即可实现LD2以0.1秒为间隔闪烁)。

(3)定时器:一个脚,两个状态,输出“1路相同频率、不同占空比”的PWM。

PWM要求

本题,修改占空比(改变CCR值)即可。设置参数如下表所示:

波形 PSC ARR CCR
2KHz 5% 400 100 5
2KHz 30% 400 100 5

(4)串口:通过串口查询单价,显示价格。STM32接收:中断、1位数据,发送:串口重定向printf。

(5)LCD:很常规,不再赘述。

(6)EEPROM:</

### 第十三届蓝桥杯嵌入式类别真题解析 #### 题目概述 在第十三届蓝桥杯嵌入式中,参者需设计并实现一个可通过串口设置密码的密码锁系统。该系统涉及多个硬件模块和软件功能的设计集成。 #### 系统组成及功能描述 - **LED模块**:用于显示当前状态或提示信息。 - **按键模块**:允许用户输入操作指令或密码字符。 - **串口模块**:支持通过USB转UART接口配置设备参数,如设定新密码等。 - **定时器PWM模块**:可以用来控制某些外设的工作周期或者作为时间基准来管理其他任务的时间间隔[^1]。 具体来说,在比过程中,选手们被要求利用给定的开发平台——CT117E-M4 (STM32G431RBT6),配合CubeMX工具生成初始化代码框架,并借助Keil5完成最终的应用程序编写工作[^2]。 #### 中断处理函数示例 以下是部分关于TIM7计数溢出回调以及USART接收完成后的中断服务子程序(ISRs) 的C语言实现: ```c #include "interrupt.h" #include "usart.h" uint16_t count_tim7 = 0; void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim->Instance == TIM7) { // 判断是否为TIM7触发 count_tim7++; } } char rxdata[10]; uint8_t rxdat; unsigned char rx_pointer; void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if (huart == &huart1){ rxdata[rx_pointer++] = rxdat; } HAL_UART_Receive_IT(&huart1, &rxdat, 1); // 继续等待下一个字节到达 } ``` 上述代码片段展示了如何响应来自定时器和异步通信端口事件的通知机制[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值