提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
这一届国赛试题总体来说难度很小,和省赛的难度差不多。考到了LED,KEY,ADC,PWM的输入捕获和PWM的输出,和第八届国赛有点相似,所以试题挺简单,就看你的细节以及选择题做的怎么样了。
提示:以下是本篇文章正文内容,下面案例可供参考
一、赛题系统框图
3.1基本功能
- 通过 STM32 内部 ADC 测量资源扩展板电位器 RP5 和 RP6 输出的电压信号;
- 通过 STM32内部定时器通道测量资源扩展板 PULS1和 PULS2输出信号频率;
- 通过 STM32 PA7 跟随 PULS1 或 PULS2 输出,与之输出同频率信号;
- 通过 LED 完成频率、电压指示功能;
- 通过按键、LCD 液晶屏实现人机交互功能设计。
3.2设计性能要求 - 按键动作响应时间:≤0.3 秒;
- 电压数据显示刷新时间:≤0.3 秒;
- 频率数据显示刷新时间:≤1 秒;
- 频率测量精度要求:≤±8%;
- 信号输出频率精度要求:≤±8%。
3.3 LCD 显示功能 - LCD 显示界面通用要求
设置显示背景色(BackColor):黑色
设置显示前景色(TextColor):白色
请严格按照题目给定的参考界面设计各个信息项的名称和行、列位置,
名称区分大小写。 - 数据显示界面
数据显示界面包含 5 个显示要素:界面名称(DATA)、RP5 输出电压值(V1)、
RP6 输出电压值(V2)、PULS1 输出频率信号(F1)和 PULS2 输出频率信号(F2)。
备注:
电压单位为伏特(显示大写 V),数据保留小数点后 1 位有效数字。
频率单位为赫兹(显示大写 H,小写 z),正整数。 - 参数配置界面
参数配置界面包含三个显示要素:界面名称(PARA)、电压指示灯(VD)、
频率指示灯(FD)。
备注:
电压指示灯可选择范围 LD1 至 LD8
频率指示灯可选择范围 LD1 至 LD8。
具体题目要求官网可以自行下载。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、主要步骤
1.Cubemax配置
2.ADC采集、puls频率测量
//**开启捕获中断**
HAL_TIM_IC_Start_IT(&htim2, TIM_CHANNEL_2);
HAL_TIM_IC_Start_IT(&htim15, TIM_CHANNEL_1);
//**开启捕获中断**
//**捕获得出频率**
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance==htim2.Instance)
{
PUl_value[0]=htim2.Instance->CNT;
htim2.Instance->CNT=0;
}else if(htim->Instance==htim15.Instance)
{
PUl_value[1]=htim15.Instance->CNT;
htim15.Instance->CNT=0;
}
}
//**捕获得出频率**
//ADC双通道采集配置
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
{
if(adc_flag_cmp==0)
{
AO_value[adc_flag]=hadc2.Instance->DR;
adc_flag++;
if(adc_flag>1)adc_flag=0;
adc_flag_cmp=1;
}
}
void adc_pro()
{
HAL_Delay(100);
if(adc_flag_cmp==1)
{
adc_flag_cmp=0;
HAL_ADC_Start_IT(&hadc2);
}
}
//ADC双通道采集配置
3.pwm频率跟随
只要测出puls频率就能算出你输出pwm波形定时器需要得arr,分频频率可根据题目要求自信配置
TIM3->ARR =(int)(2000000*1.0/(1000000*1.0/PUl_value[0])) ;
TIM3->CCR2 =(int)((2000000*1.0/(1000000*1.0/PUl_value[0]))/2);
总结
11届程序题较简单能拿高分主要看客观题,所以有必要加强对模数电和嵌入式题目得学习。