蓝桥杯嵌入式省赛程序题(持续更新中...)

本文详细分析了蓝桥杯嵌入式竞赛中关于STM32的题目,涵盖11届、12届及部分往届的赛题。主要涉及STM32CubeMX工程配置、KEIL的使用、按键(KEY)、LCD显示、LED控制、ADC和PWM等模块。在11届题目中,解析了按键任务、LCD界面切换、PWM输出等功能实现。12届题目重点在于ADC、LCD、按键和LED的基础操作及逻辑关系。同时,文中也指出了常见问题和解决方法,如初始化问题、串口通信、EEPROM存储等。

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

11届题目分析

主要用到了

  • 按键:按键扫描,消抖处理 + 每个按键执行的任务
  • LCD:按照要求实现两个显示界面即可
  • LED:在按键按下的条件下,点亮或熄灭某个灯
  • ADC:获取R37输出的电压值,并以此控制PWM输出信号占空比
  • PWM:通过PA6和PA7引脚输出频率和占空比一定的波
    功能模块

STM32CubeMX创建初始工程

  1. 各个管脚
    在这里插入图片描述

  2. 时钟

  3. 文件名称路径设置

  4. 生成工程,打开KEIL

KEIL

key

  1. 按键刷新时间不大于100ms
  2. 按键扫描函数keyscan()
  3. 按键执行任务函数**(一开始可以先空着)**
    在这里插入图片描述

LCD

  1. 添加lcd.c文件
  2. LCD初始化
  3. 刷新时间100ms
  4. 首先编写符合题目要求的LCD的两个显示界面 (一开始可以先空着)
void task_display(void)
{
   
	if(LCD_show==1)
	{
    
		LCD_SetBackColor(Black);
		LCD_SetTextColor(White);

		LCD_DisplayStringLine(Line0,(unsigned char *)"      Data          ");	
		LCD_DisplayStringLine(Line1,(unsigned char *)"                    ");		
		sprintf((char *)str, "   V:%.2fV          ", R37_Value * 3.3 / 4096);
		LCD_DisplayStringLine(Line2, (uint8_t *)str);	
		LCD_DisplayStringLine(Line3,(unsigned char *)"                    ");			
		sprintf((char *)str, "   Mode:%s        ",mode_str);
		LCD_DisplayStringLine(Line4, (uint8_t *)str);	
		LCD_DisplayStringLine(Line5,(unsigned char *)"                    ");	
		LCD_DisplayStringLine(Line6,(unsigned char *)"                    ");	
		LCD_DisplayStringLine(Line7,(unsigned char *)"                    ");	
		LCD_DisplayStringLine(Line8,(unsigned char *)"                    ");	
		LCD_DisplayStringLine(Line9,(unsigned char *)"                    ");			
	}		
	else if(LCD_show==2)
	{
   
		LCD_SetBackColor(Black);
		LCD_SetTextColor(White);

		LCD_DisplayStringLine(Line0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值