这次的笔记是学习LCD的驱动,使用官方的多媒体扩展版
参考例程是官方的例程:art_pi_net_player
该例程功能强大,配置丰富。无耐我一时半会消化不了,还是一步一步来学习。
先点亮LCD再说
配置RT-Thread Settings
硬件勾选“Media-IO”,暂时不选择touch和audio功能,要注意不能选择enable LCD,这个选项是对应于LDTC驱动方式的显示屏的。这个多媒体扩展版上用的是MCU屏,自带驱动的IC的,是SPI通讯口,接在SPI2上,所以勾选了enable spi2
保存退出,等待生成配置。会自动在项目中添加ILI9488的驱动文件。
编译后会出现一条警告,是说函数定义而未使用,这个可以忽略
在文件中有一个函数drv_lcd_ili9488_hw_init(),已经注册为自动初始化
同时也注册了一个终端调试命令ili9488_test
现在将固件下载进去开发板看看什么效果。
屏幕白屏,而且终端打印错误信息,这是什么情况?
添加SPI2初始化代码段
查看了一下stm32h7xx_hal_msp.c文件,原来没有针对SPI2的初始化代码段。把下面这个代码段补上去,重新编译下载。
好了,不再报错误了
此时LCD还是白屏
在终端输入测试命令,就可以看到显示了
只是简单的显示图案和文字
添加触摸功能
首先是配置RT-Thread Settings
编译之后通过,下载成功,但是没有任何反应。这时候就要看说明文档了,原来这时候还没有添加touch的相关代码。
在软件包ft6236中包含有一个sample的目录,里面有相关的代码,我们可以把代码段拷贝到main.c中,并进行相应的修改
拷贝到main.c之后,记得要把设备名改成“i2c2”,因为硬件上就是连接在I2C2上的
下载固件后在终端口查看,只要手触摸屏幕,终端就会打印出触摸的坐标
包括按下坐标点,移动坐标点,抬起坐标点
至此就完成了基本的LCD和触摸驱动,下一步上个GUI来玩玩。