【个人总结】第十三届圈钱杯嵌入式省赛2

直接概述实现各模块功能的代码配置

LCD

LED和LCD引脚冲突问题参见该博客

蓝桥杯嵌入式的一些问题合集

简单来说就是在lcd的配置文件中的LCDInit,LCD_Clear,LCD_DIsplayStringLine函数加入以下代码

uint16_t temp = GPIOC->ODR;
```
//源码
```
GPIOC->ODR = temp;

 读取 GPIOC 的输出数据寄存器(ODR)的当前值,并存入临时变量 temp

  • GPIOC->ODR 访问的是 GPIOC 外设的 ODR 寄存器,它存储了当前 GPIO 端口的输出状态(每一位对应一个引脚的电平)。

  • uint16_t 表示 16 位无符号整数,因为 STM32 的 GPIO 端口通常是 16 位的(如 PC0~PC15)。

写入 相同的值回 ODR 寄存器

这相当于把之前读取的值重新写回 ODR,理论上不会改变 GPIO 的输出状态。

同时在main函数里LCD初始化之前先把PD2锁住。

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);

LCD初始化完成,接下来讲述如何实现LCD功能,还是两个最基本的函数

char text[20];
void lcd_show(void)
{
    sprintf(text, "...text...");
    LCD_DisplayStringLine(Line1, (uint8_t *)text);
}

 

LCDInit();
LCD_Clear(Black);
LCD_SetBackColor(Black);
LCD_SetTextColor(White);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值