【物联网蓝桥杯嵌入式】蓝桥杯嵌入式第十三届真题代码详解(超级详细)

本文详细介绍了如何在STM32G4xx平台上使用CubeMx进行GPIO配置,包括定时器、USART串口通信设置。此外,还展示了LED模块、LCD显示屏、脉冲模块和KEY模块的驱动,以及如何在user.c和main.c中实现相应功能,如LCD显示和按键操作,以及通过USART进行数据传输。

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

一、CubeMx配置

GPIO配置

定时器配置

USART串口通信配置

二、LED模块

三、LCD显示屏和脉冲模块

四、KEY模块

五、USART串口通信模块

在user.c里配置LED和KEY按键接口

user.c如下


#include "main.h"
void LED_disp(u8 led)  //LED模块
    {
    HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET); //把PD2引脚置高电平(不作用)
        HAL_GPIO_WritePin(GPIOC,0xFF00,GPIO_PIN_SET);  //PC8-PC15引脚置高电平
        HAL_GPIO_WritePin(GPIOC,led<<8,GPIO_PIN_RESET);  //RESET低电平有效
        HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET); //PD2置低,锁存器有效
    
    
}

u8 key_up;
u8 key_down;
u8 key_old=0;
u8 key_value;
void KEY_read()   //按键模块
{
    if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==0)
    {     HAL_Delay(10); //延时10MS消抖
        key_value=1;
    }
    else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==0)
        
{     HAL_Delay(10); //延时10MS消抖
        key_value=2;
}
    else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==0)
    {     HAL_Delay(10); //延时10MS消抖
        key_value=3;
    }
    else if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==0)
    {    
        HAL_Delay(10); //延时10MS消抖
        key_value=4;
    }
    else key_value=0;  //没有按键
    
    
    key_up=~key_value&(key_value^key_old);  //按键弹起
    key_down=key_value&(key_value^key_old);  //按键按下
    key_old=key_value;
    
}
 

在main.c里实现比赛要求

main.c内容如下

#include "main.h"
#include "gpio.h"
#include "user.h"
#include "stdio.h"   //sprintf头文件
#include "string.h"   //strlen头文件

unsigned char ui=0;  //LCD屏幕
unsigned char password[3]={'1','2','3'};
extern size_t strlen(const char *);  

u8 error_num=0;//错误次数

u8 b1_value='@';  //按键B1的值
u8 b2_value='@';
u8 b3_value='@';    
u32 lcd_tick=0;
u8 lcd_buf[30];

u8 pwm;

void LCD_proc()<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值