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;
}
相关推荐
LCG元7 小时前
STM32实战:基于STM32F103的Bootloader设计与IAP在线升级
javascript·stm32·嵌入式硬件
Tutankaaa7 小时前
从被动接受到主动挑战:知识竞赛如何重塑学习价值
人工智能·经验分享·笔记·学习
房开民7 小时前
modbus相关学习
网络·学习
不怕犯错,就怕不做8 小时前
Linux-Sensor驱动移植与调试(转载)
linux·驱动开发·嵌入式硬件
LCMICRO-133108477468 小时前
长芯微LCMDC8584完全P2P替代ADS8584,是一款16位、4通道同步采样的逐次逼近型(SAR)模数转换器(ADC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换器adc
STC_USB_CAN_80519 小时前
菜单学习,科学计算器使用【TFT240*320彩屏+实际键盘】@Ai8051U,ST7789
单片机·学习·51单片机
handler019 小时前
拒绝权限报错!三分钟掌握 Linux 权限管理
linux·c语言·c++·笔记·学习
xiaotao1319 小时前
02-机器学习基础: 无监督学习——scikit-learn实战与模型管理
学习·机器学习·scikit-learn
hipolymers11 小时前
C语言怎么样?难学吗?
c语言·数据结构·学习·算法·编程
异方辰电子11 小时前
8.原理图为什么看不到具体的电路(比如STM32的晶振等)
stm32·单片机·嵌入式硬件