STM32完全学习——FSMC控制LCD的一些问题

一、使用标准库初始化FSMC的时候

cpp 复制代码
//写寄存器函数
//cmd:寄存器值
void LCD_WriteCmd(u16 cmd)
{
    TFTLCD->LCD_CMD=cmd;
}

//写数据
//data:要写入的值
void LCD_WriteData(u16 data)
{
    TFTLCD->LCD_DATA=data;
}

上面这样写是没有问题的,屏幕也可以正常显示,我这里这是说我发现的问题,也就是不同点,像FSMC的初始化这些,网上有太多的文档了,这里也就没必要说了。主要的区别还是在上面这两个函数。

二、使用CubMAX工具初始化FSMC

如果这样的话直接使用上面的代码就会有问题,我们只道上面的这个代码其实和使用哪种方式初始化FSMC是没有什么关联的,但是我们知道STM32一共有标准库,HAL库,和LL库这三种,虽然这三种初始化时候代码都是一样的,但是这三种方式背后对FSMC的处理的效率是不一样的,也就是说LL库的效率高于标准库高于HAL库。因此在对LCD屏幕进行写数据的时候,使用LL库的时候就必须添加延时作为缓冲。这样屏幕就可以正常显示了,前提是你的其他配置都是正确的前提下,我其他配置都正确的前提下屏幕是这样下是的,看下图。我想要的是显示全部红色,然后就会这样,然后添加延时之后,就好了。

cpp 复制代码
//写寄存器函数
//cmd:寄存器值
void LCD_WriteCmd(u16 cmd)
{
	delay_us(1);
    TFTLCD->LCD_CMD = cmd;
}

//写数据
//data:要写入的值
void LCD_WriteData(u16 data)
{
	delay_us(1);
    TFTLCD->LCD_DATA = data;
}
相关推荐
苏生Susheng2 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
我命由我123453 小时前
Photoshop - Photoshop 把两个 PSD 文件合并
学习·ui·职场和发展·产品运营·产品经理·学习方法·photoshop
AOI小白新手上路4 小时前
江科协51单片机 7-2 LCD1602显示时钟实验
单片机·嵌入式硬件·51单片机
思麟呀4 小时前
嵌入式入门(一)宏观生态到首次烧录
c语言·嵌入式硬件
runningshark4 小时前
SC32L14GR8PJR
单片机·嵌入式硬件
智购科技无人售货机厂家5 小时前
2026自动售货机备用电池管理系统设计:从充放电保护到健康监测的工程实践~YH
大数据·linux·单片机·嵌入式硬件·微信
小雪崩5 小时前
嵌入式学习 day39:TCP并发服务器模型
linux·服务器·c语言·网络·学习·tcp/ip
智购无人售货机厂家5 小时前
2026自动售货机软硬件版本管理策略:从版本号规范到兼容性矩阵的工程实践~YH
运维·服务器·人工智能·单片机·嵌入式硬件·线性代数·矩阵
知识分享小能手5 小时前
深度学习学习教程,从入门到精通,概率与信息论 — 知识点详解(3)
人工智能·深度学习·学习·数据挖掘·概率论
Wendy不吃榴莲5 小时前
# AI短剧教程 - 《后西游记》开播后,AI影视为什么更考验“连续讲故事”?
人工智能·笔记·学习·ai·视频