1. 硬件选型与连接要点
我刚开始玩STM32F407VET6驱动2.8寸电阻屏时,最头疼的就是硬件连接问题。这块开发板自带FSMC接口,正好可以对接市面上大多数2.8寸电阻屏的8080并行接口。我用的是一块淘宝上常见的极客2.8寸屏幕,30Pin接口,分辨率240x320,驱动芯片是ILI9341。
这里有个坑要注意:不同厂家的屏幕引脚顺序可能不一样!我一开始直接按商家给的原理图接,结果屏幕死活不亮。后来发现他们的引脚定义和野火的屏幕是反的。所以一定要先用万用表测一下引脚对应关系,特别是电源和地线,接反了直接烧屏。
FSMC的接线方式我推荐用A16地址线,这样寄存器地址计算简单。数据线用D0-D15,控制线接NE1(片选)、NOE(读使能)、NWE(写使能)。复位引脚和背光控制可以接到普通GPIO上,方便软件控制。实际接线时,我建议用排线连接,不要用杜邦线,长距离杜邦线容易引入干扰导致显示异常。
电源部分要特别注意,屏幕的3.3V供电一定要稳定。我在调试过程中就遇到过因为电源波动导致的屏幕闪烁问题,后来单独给屏幕加了一个LDO才解决。如果屏幕带触摸功能,触摸芯片的供电也要稳定,否则会影响触摸精度。
2. CubeMX配置详解
打开CubeMX后,先选择STM32F407VET6型号,然后开始配置时钟。主频建议开到168MHz,这是F407的极限性能,高速时钟对屏幕刷新率提升很明显。记得使能外部晶振,否则内部时钟精度不够会影响FSMC时序。
FSMC配置是关键步骤。在Connectivity里找到FSMC,选择Bank 1,模式选LCD Interface,这样CubeMX会自动生成8080接口的配置。地址映射我习惯用A16,这样寄存器地址偏移是0x60020000,数据地址是0x60000000。时序参数初学者可以先用默认值,后面优化时再调整。
数据宽度选16位,这样一次可以传输两个像素点,比8位模式快一倍。存储类型选LCD寄存器,等待信号根据屏幕手册来定,一般默认即可。有个细节要注意:FSMC的地址建立时间和数据建立时间需要根据屏幕手册调整,如果设置太短会导致写入失败。
GPIO配置方面,除了FSMC相关的

3257

被折叠的 条评论
为什么被折叠?



