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;
}
相关推荐
白嫖勇者24 分钟前
C++基础学习
学习
LightspeedResearch1 小时前
冲刺一区!挑战7天完成一篇趋势性分析GBD DAY1-7
学习
Lyrig~2 小时前
【Convex Optimization Stanford】Lec5. Duality 对偶问题
学习·凸优化
天外高人2 小时前
实验六 项目二 简易信号发生器的设计与实现 (HEU)
单片机·嵌入式硬件·fpga开发·实验
字节全栈_kYu5 小时前
微信小程序视频点播在线视频学习系统 毕业设计 课程设计(1)首页_微信小程序视频功能设计流程图
学习·微信小程序·课程设计
想拿高薪的韭菜5 小时前
人工智能第2章-知识点与学习笔记
人工智能·笔记·学习
文科比理科更擅长的工科男6 小时前
012-51单片机CLD1602显示万年历+闹钟+农历+整点报时
单片机·嵌入式硬件·51单片机
Future_yzx6 小时前
Java Web的发展史与SpringMVC入门学习(SpringMVC框架入门案例)
java·前端·学习
Future_yzx6 小时前
Spring MVC学习——发送请求(@RequestMapping注解及请求参数绑定)
学习·spring·mvc
小菜鸟博士7 小时前
手撕Vision Transformer -- Day1 -- 基础原理
人工智能·深度学习·学习·算法·面试