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;
}
相关推荐
深蓝海拓15 分钟前
YOLO v11的学习记录(五) 使用自定义数据从头训练一个实例分割的模型
学习·yolo
Gary Studio15 分钟前
鋰電池充電芯片學習
学习
菜鸟‍39 分钟前
【前端学习】React学习【万字总结】
前端·学习·react.js
AA陈超1 小时前
ASC学习笔记0019:返回给定游戏属性的当前值,如果未找到该属性则返回零。
c++·笔记·学习·游戏·ue5·虚幻引擎
知南x2 小时前
【STM32MP157 异核通信框架学习篇】(10)Linux下Remoteproc相关API (下)
linux·stm32·学习
Aldrich_328 小时前
蓝桥杯嵌入式赛道—-软件篇(GPIO输出模式配置)
c语言·vscode·stm32·单片机·嵌入式硬件·蓝桥杯
Kisorge8 小时前
【电机控制】基于STM32F103C8T6的二轮平衡车设计——LQR线性二次线控制器(算法篇)
stm32·嵌入式硬件·算法
范纹杉想快点毕业10 小时前
《嵌入式开发硬核指南:91问一次讲透底层到架构》
java·开发语言·数据库·单片机·嵌入式硬件·mongodb
p666666666810 小时前
STM32-bootloader引导程序跳转机制笔记
笔记·stm32·嵌入式硬件
Fantasydg11 小时前
Servlet学习
学习·servlet