打印
[其他ST产品]

STM32F407 FSMC 驱动液晶显示

[复制链接]
842|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
4y1b3|  楼主 | 2023-6-27 20:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
前端时间对液晶屏很感兴趣,驱动了好多屏,这里主要讲下用FSMC方式驱动16位并口屏幕的方法,因为STM32 FSMC功能的限制,最多只能驱动16位并口,18位,24位的可以用端口模拟的方式或者牺牲颜色数量用16位FSMC驱动。


  • 配置Cubemx

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

使用特权

评论回复
评论
4y1b3 2023-6-27 20:48 回复TA
———————————————— 版权声明:本文为CSDN博主「memoff」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/memoff/article/details/103960515 
沙发
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)前初始化液晶屏就可以了,很简单吧。

使用特权

评论回复
5
童雨竹| | 2024-2-1 07:10 | 只看该作者

宽度则与电感量和电阻量成反比

使用特权

评论回复
6
Wordsworth| | 2024-2-1 08:13 | 只看该作者

电流要增大

使用特权

评论回复
7
Clyde011| | 2024-2-1 09:16 | 只看该作者

整流器或功率开关管与每个电容端的连线长度和宽度都要一样

使用特权

评论回复
8
公羊子丹| | 2024-2-1 10:09 | 只看该作者

有些信号包含丰富的高频分量

使用特权

评论回复
9
万图| | 2024-2-1 11:12 | 只看该作者

交流电流环路的布线要在其他引线之前布好

使用特权

评论回复
10
Uriah| | 2024-2-1 12:15 | 只看该作者

其他的信号和地要与这些高压引线和它的散热部分隔开

使用特权

评论回复
11
帛灿灿| | 2024-2-1 14:11 | 只看该作者

功率开关或整流环的连接没有直接接到电容的两端

使用特权

评论回复
12
Bblythe| | 2024-2-1 15:14 | 只看该作者

变压器隔离拓扑中,变压器有多少个绕组

使用特权

评论回复
13
周半梅| | 2024-2-1 17:10 | 只看该作者

在直流电流上叠加了一些小的交流电流分量

使用特权

评论回复
14
Pulitzer| | 2024-2-1 18:13 | 只看该作者

连接点是产生控制IC所要检测的小电压的所有器件的公共连接点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

245

帖子

0

粉丝