1.NOR Flash/PSRAM/SRAM/ROM/LCD 1,这里选择这个也就是STM32的FSMC存储块1(Bank1)了 2. Chip Select,选择Bank1的第四区,是根据原理图的映射管脚进行选择的,这里选择不同区对应的引脚是不同的 3. Memory Type,存储类型,这里当然是选择LCD接口,那么里面还可以选择其他的存储类型,如果需要使用其他类型的存储设备...
LCD_RST_Pin,GPIO_PIN_SET);#defineLCD_DC_LOW()HAL_GPIO_WritePin(LCD_DC_GPIO_Port,LCD_DC_Pin,GPIO_PIN_RESET);#defineLCD_DC_HIGH()HAL_GPIO_WritePin(LCD_DC_GPIO_Port,LCD_DC_Pin,GPIO_PIN_SET);#defineLCD_CS_LOW()HAL_
接着将LCD端口定义函数用如下代码替换: #define LCD_RES_Clr() HAL_GPIO_WritePin(TFT_RES_GPIO_Port,TFT_RES_Pin, GPIO_PIN_RESET)//RES#define LCD_RES_Set() HAL_GPIO_WritePin(TFT_RES_GPIO_Port,TFT_RES_Pin, GPIO_PIN_SET)#define LCD_DC_Clr() HAL_GPIO_WritePin(TFT_DC_GPIO_Port,TFT_DC_...
#defineLCD_RST PCout(5)#defineLCD_CD PBout(0)#defineLCD_CS PBout(1)#defineLCD_LED PBout(2) 1 2 3 4 不论是发送数据还是引脚,我都采用了HAL库提供的现成的SPI发送函数: HAL_StatusTypeDefHAL_SPI_Transmit(SPI_HandleTypeDef *hspi,uint8_t*pData,uint16_tSize,uint32_tTimeout) 1 ...
基本一致的函数有:void SPIv_WriteData(u8 Data),void Lcd_WriteIndex(u8 Index),void Lcd_WriteData(u8 Data),void LCD_WriteReg(u8 Index,u16 Data),void Lcd_WriteData_16Bit(u16 Data),void Lcd_Reset(void)。 引脚定义: //define LCD P...
TFT-LCD:TFT 是薄膜晶体管,LCD 是液晶显示器。它属于 LCD,并使用薄膜晶体管和滤光片之类达到控制颜色的目的,所以和 OLED 不同,它需要一直开着背光,具体原理网上有很多。 驱动芯片:直接控制屏幕听起来需要大量控制引脚,麻烦且无头绪。一般屏幕会自带驱动芯片,方便进行软件控制。自带的驱动芯片内部和屏幕相连,并暴露...
lcd_init.c 这个文件主要是提供TFT LCD显示屏(基于ILI9488驱动芯片)与STM32H5系列微控制器之间的交互功能。 void LCD_Writ_Bus(uint8_t dat): 此函数用于将8位数据通过SPI发送到LCD。先前使用的是位操作来手动发送数据,但现在改用HAL库函数HAL_SPI_Transmit来处理。
然后就是了解FSMC大概情况,我们使用FSMC驱动LCD,相比8080驱动,速度更快,我对它的理解其实就是一个外部总线,且是一个可以自己定义时序的总线并且速度不慢,当驱动8080接口的器件是时,由于STM32没有自带硬件8080接口的控制器,如果只是使用GPIO来实现此时序的话,会占用大量的CPU资源,所以这个时候就可以考虑采用FSMC功能。
在日常开发项目中,显示屏是经常使用的一个部件,显示屏的种类也是多种多样,但对于开发者来说,主要关心的是显示屏所用到的驱动芯片,本次给小伙伴们带来的是 STM32 下的 HAL 库硬件 SPI 驱动 320*240 分辨率的 TFT-LCD,LCD 显示屏驱动芯片为 ST7789,一步步实现如何驱动此类驱动芯片的 LCD 屏幕,话不多...
关于STM32F4单片机,使用HAL库自带的SPI,驱动TFTLCD屏幕的资料网上好像不太多,正好最近我做了这项工作,把成果分享给大家。我的代码实现了这些功能:任意坐标画点,指定首尾坐标画线,画方框,指定区域显示彩图,显示16* 16或者12* 12的汉字、ASCII码,并附带ASCII码表与少量的汉字字库。