蓝桥杯 stm32 LCD显示及 数据格式化

本文介绍了在蓝桥杯比赛中使用STM32单片机进行LCD显示的基本函数,包括清屏、显示字符串、设置背景和字体颜色。还讲解了如何利用sprintf函数进行格式化输出,以避免长数据覆盖短数据的问题,如使用%5d、%-5d等格式控制符,并演示了16进制和8进制显示以及百分号的特殊处理。

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

文章代码使用 HAL 库。

前言


一、LCD 原理图:

比赛提供了 HAL_LCD 的例程,相关的 IO 已经帮我们初始化完成,所以我们不需要再去配置引脚。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
蓝桥杯比赛板子的 LCD 屏幕 的分辨率是 320 * 240

比赛 默认 在 LCD 上显示一个字符大小是固定的,是16 * 24 的点阵

一行最多显示 20 个字符,可以显示 10 行。也就是说一个字符 x 方向占据 16 (320 / 20 = 16), y 方向占据 24 。(240 / 10 = 24)


二、LCD 基本函数:

### 关于STM32蓝桥杯开发板LCD屏幕显示图片的方法 在STM32蓝桥杯开发板上实现LCD屏幕显示图片的功能,通常涉及以下几个方面: 1. **硬件连接** LCD显示屏需要通过特定接口(如SPI、I2C或并行总线)与STM32微控制器相连。具体连接方式取决于所使用的LCD模块型号。 2. **软件配置** 需要初始化LCD驱动程序,并加载图片数据LCD缓冲区中进行显示。以下是基于HAL库的常见方法[^1]。 #### 初始化LCD驱动 假设使用的是ILI9341作为LCD控制器,可以通过以下步骤完成初始化: ```c #include "lcd.h" void LCD_Init(void) { HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_RESET); // 复位LCD HAL_Delay(10); HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET); // 发送初始化命令序列 LCD_SendCommand(0x01); // 清屏 LCD_SendCommand(0x28); // 设置显示模式 LCD_SetOrientation(LANDSCAPE); // 设置横屏/竖屏方向 } ``` #### 加载图片数据 为了在LCD屏幕上显示图片,需先将图片转换为适合嵌入式系统的格式(如RGB565),然后将其存储至Flash或SD卡中。以下是读取图片数据并通过DMA传输到LCD的例子[^4]: ```c #define IMAGE_WIDTH 240 #define IMAGE_HEIGHT 320 uint16_t image_data[IMAGE_WIDTH * IMAGE_HEIGHT]; void Display_Image(void) { uint16_t x, y; // 假设image_data已从外部存储设备加载 for (y = 0; y < IMAGE_HEIGHT; y++) { for (x = 0; x < IMAGE_WIDTH; x++) { LCD_DrawPixel(x, y, image_data[y * IMAGE_WIDTH + x]); } } // 使用DMA加速传输 DMA_HandleTypeDef hdma; __HAL_DMA_ENABLE(&hdma); HAL_DMA_Start(&hdma, (uint32_t)image_data, (uint32_t)LCD_FRAME_BUFFER, IMAGE_WIDTH * IMAGE_HEIGHT / 2); } ``` #### 注意事项 - 如果图片较大,建议分块处理以减少内存占用。 - 对于复杂的图形界面应用,可以考虑使用GUI框架(如LVGL)简化开发过程[^3]。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖果罐子♡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值