[其他ST产品] STM32F407 FSMC 驱动液晶显示

[复制链接]
1581|14
 楼主| 4y1b3 发表于 2023-6-27 20:46 | 显示全部楼层 |阅读模式
前端时间对液晶屏很感兴趣,驱动了好多屏,这里主要讲下用FSMC方式驱动16位并口屏幕的方法,因为STM32 FSMC功能的限制,最多只能驱动16位并口,18位,24位的可以用端口模拟的方式或者牺牲颜色数量用16位FSMC驱动。


  • 配置Cubemx
    2993649ada0d72a7e.png
    注意选择的A6用于区分指令和数据和后面的地址计算有关系, 时序的话一开始可以用默认的(最大值)调通了再慢慢改小,看看极限是多少。

评论

———————————————— 版权声明:本文为CSDN博主「memoff」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/memoff/article/details/103960515  发表于 2023-6-27 20:48
 楼主| 4y1b3 发表于 2023-6-27 20:46 | 显示全部楼层
自己编写TFT的驱动
液晶按照挂载的区域和A6引脚来计算地址
#define Bank1_LCD_CMD   ((uint32_t) 0X60000000)
#define Bank1_LCD_DATA  ((uint32_t) 0X60000080)
 楼主| 4y1b3 发表于 2023-6-27 20:47 | 显示全部楼层
编写LCD 寄存器操作函数

void LCD_WR_REG (u16 index)
{
        *(__IO u16 *) (Bank1_LCD_CMD) = index;
}
void LCD_WR_DATA(u16 data)
{
        *(__IO u16 *) (Bank1_LCD_DATA) = data;
}
u16 LCD_READ_REG(u16 reg)
{
        u16 result=0;
        *(__IO u16 *) (Bank1_LCD_CMD) = reg;
        result=*(__IO u16 *)(Bank1_LCD_DATA);
        return result;
}
 楼主| 4y1b3 发表于 2023-6-27 20:48 | 显示全部楼层
编写LCD的初始化函数,这个根据屏幕型号的不同,初始化函数各不相同。然后在Main.c, while(1)前初始化液晶屏就可以了,很简单吧。
童雨竹 发表于 2024-2-1 07:10 | 显示全部楼层

宽度则与电感量和电阻量成反比
Wordsworth 发表于 2024-2-1 08:13 | 显示全部楼层

电流要增大
Clyde011 发表于 2024-2-1 09:16 | 显示全部楼层

整流器或功率开关管与每个电容端的连线长度和宽度都要一样
公羊子丹 发表于 2024-2-1 10:09 | 显示全部楼层

有些信号包含丰富的高频分量
万图 发表于 2024-2-1 11:12 | 显示全部楼层

交流电流环路的布线要在其他引线之前布好
Uriah 发表于 2024-2-1 12:15 | 显示全部楼层

其他的信号和地要与这些高压引线和它的散热部分隔开
帛灿灿 发表于 2024-2-1 14:11 | 显示全部楼层

功率开关或整流环的连接没有直接接到电容的两端
Bblythe 发表于 2024-2-1 15:14 | 显示全部楼层

变压器隔离拓扑中,变压器有多少个绕组
周半梅 发表于 2024-2-1 17:10 | 显示全部楼层

在直流电流上叠加了一些小的交流电流分量
Pulitzer 发表于 2024-2-1 18:13 | 显示全部楼层

连接点是产生控制IC所要检测的小电压的所有器件的公共连接点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

361

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部