蓝桥杯嵌入式第十四届省赛总结

文章作者分享了在蓝桥杯竞赛中的经验,重点讨论了如何在运行时调整PWM输出频率,涉及定时器的使用,以及如何在5秒内按特定步长缓慢改变PWM频率。关键在于计算autoreload值以改变PWM频率,并通过库函数更新设置。

我的感受

反正人生就这一次打蓝桥杯,不妨写个总结给今后的学弟学妹们作个Present!(写博客不忘复习单词)。

客观题:总会有几个是能做的。虽然不定项得分很低。

主观题:一个感受,难点在于输入捕获和PWM输出。在运行时更改PWM的频率。再结合定时器,平均缓慢的增加或减少。需要去更改TIM2的autoreload(重装载值)的值来改变PWM的频率,比如题目说的4K和8K的频率。//这个实时运行过程中更改类比十三届

80MHZ的主频,200-1的时钟预分频系数,100的自动重装载值得4k的频率,50的自动重装载值得8K的频率。然后题目要求5s内缓慢递增或递减,且步长小于200hz,经过我的计算,无论是从低频变高频还是高频变低频,每100ms加autoload的值加减1并更新autoload。所以5s总共有50个100ms,即为每100ms autoreload的值加减1. 因为改了autoreload所以占空比需要重新计算赋值给TIM2->CCR2寄存器。

分析过程

auloreload为50时: Freq =8K  (设置预分频系数为200-1)

步长最大值为 8K-7843<200HZ

在100ms的中断里通过调用以下库函数完成PWM频率的缓慢增减.

__HAL_TIM_SetAutoreload(&htim2,autoreloadData-1);
HAL_TIM_GenerateEvent(&htim2, TIM_EVENTSOURCE_UPDATE);

### 第十四届蓝桥杯嵌入式试题概述 第十四届蓝桥杯嵌入式涵盖了多个方面的知识点和技术应用,旨在考察参者的实际编程能力和解决问题的能力。比中的题目不仅涉及基础的硬件接口操作,还包括较为复杂的算法设计和数据处理。 #### 题目一:GPIO配置与控制 在该题中,要求选手完成特定端口的初始化配置工作[^4]。具体来说: - 将指定引脚设置为输入模式,并设定其默认电平状态; - 对另一组引脚执行输功能启用的操作; 此部分主要测试学生对于微控制器基本外设的理解程度及其正确使用的技能水平。 ```c // GPIO 初始化函数示例 void gpio_init(void){ // 设置 LED 引脚为 INPUT 模式并拉高初始电平 GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_8; // 假定 PA8 连接至LED GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } ``` #### 题目二:脉冲信号捕获及加速度计算 尽管近年来此类问题较少现在竞当中,但在本届事里重新现了关于脉冲宽度测量的任务[^2]。通过定时器或其他方法捕捉外部输入的方波周期变化情况之后,还需要进一步利用给定公式来推算物体运动过程中的瞬时加速度值。 由于具体的物理模型参数未知,在这里仅提供概念性的描述而不深入探讨细节实现方式。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值