STM32F7外设FMC控制LCD显示屏,
显示屏的点阵LCD控制器(Dot Matrix LCD Controller/Driver)是ST7066U。
配置
在CubeMX中选择
图 1
根据实际情况选择,Bank几,LCD片选引脚。
图 2
FMC原理
对于FMC如何控制LCD,我的理解:
FMC能自动发送数据读写RAM,通过FMC读写LCD的显存就可以完成显示的功能了。
图 3
FMC有地址接口和数据接口,并且FMC的片选、写使能、读写控制都是外设自动完成的。
FMC的数据接口位数是可以选择的。
FMC的地址接口:一共32位(0-31),选择NOR/PSRAM后,前四位固定位0x6(图4),选择Bank后,[27:26]位固定(图5),(按照图中的配置,[27:26]位为0b11),还剩下可选的26位(0-25,图3)。
图 4
图 5
另外根据图1中LCD Register Select的选项是A0,一般是选择LCD显示屏的命令/数据选择引脚。所以当我们向0x6C000000写数据时(0xC=0b1100,来源于选择Bank),A0引脚为低电平,是写命令模式。当我们向0x6C000001写数据时,A0引脚为高电平,是写数据模式(可以查LCD的手册)。
应用
根据上面的配置,定义命令模式和数据模式的地址。
uint32_t* Command_Address = (uint32_t*)0x6C000000;
uint32_t* Data_Address = (uint32_t*)0x6C000001;
使用
HAL_SRAM_Write_8b(&hsram1, Data_Address, 0x30, 1);
就可以向LCD控制器的显存写数据,比如写0x30就是显示数字0。