] 本帖最后由 lookc4 于 2021-4-22 09:18 编辑 [/i]
[md]# cubemx 驱动野火 ILI9341 屏幕
为电赛准备模块,因本人颇爱野火,野火的教程也十分平易近人,资料齐全。便着手移植驱动程序,有几个BUG记录一下。如有疏漏请留言指点。
首先
我们浏览一下源驱动文件,发现野火一大个人十分不喜欢的方面明明是HAL教程,然后编写自己的驱动!移植起来十分不方便(小小吐槽一下)
发现是FSMC模拟8080时序驱动的屏幕,第一步按着这个配置来配置cubemx。
CUBEMX 配置
新建一个工程这里使用的是野火-霸道开发板,正常的配置。来到FSMC配置
选着NOR Flash 貌似LCD1~4都是可以的,接着按照程序配置
这里要注意一下Memory type的配置,因为我们要驱动LCD,选择LCD模式,最关键的LCD register select一定要选着一样的,这里是A23。下面是区块选着默认即可,如果说速度过慢可以尝试减小时钟,加快速度。
注意一下因为只配置了FSMC并没有配置LCD的驱动引脚 类如背光PG6 与 复位PG11 这里初始化一下。
驱动程序 删减
注释掉原先的FSMC驱动与相应的GPIO驱动,加入到cubemx的工程中,一并注释掉
ILI9341_GPIO_Config (); and ILI9341_FSMC_Config ();
这时我们发现会报一个奇怪的错误
程序链接不到sFONT这个结构体变量类型,这里我把这结构体初始化放到了
bsp_ili9341_lcd.h 这个头文件里面,方便它直接调用。
在主程序中调用初始化函数,并烧录进入自己做的最小开发板中
观察问题不大。
这里提一下驱动文件里面延时,是使用最简单的一直循环延时,并没有使用HAL库的HAL_DELAY延时函数,因为主频一样,延时时间一样,但如果说是F4的主频延时将大大减小建议改为HAL库的延时,通过示波器发现延时时间为470us左右 频率为1kHZ。
自此屏幕移植结束,后续如果有什么bug,待补充。
未完待续~ |