1.NOR Flash/PSRAM/SRAM/ROM/LCD 1,这里选择这个也就是STM32的FSMC存储块1(Bank1)了 2. Chip Select,选择Bank1的第四区,是根据原理图的映射管脚进行选择的,这里选择不同区对应的引脚是不同的 3. Memory Type,存储类型,这里当然是选择LCD接口,那么里面还可以选择其他的存储类型,如果需要使用其他类型的存
#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 ...
接着将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_...
LCD_WriteData(0x00); LCD_WriteData(0x02); LCD_WriteData(0x00); LCD_WriteData(0x81); LCD_WriteCommand(0x2B); //设置行地址 LCD_WriteData(0x00); LCD_WriteData(0x03); LCD_WriteData(0x00); LCD_WriteData(0x82); LCD_WriteCommand(0x2C); //写内存 } 1. 2. 3. 4. 5. 6. 7. ...
HAL_Init();/* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system ...
count++){write_data(Color);}}void lcd_init(void){//GPIO_SetBits(GPIOF,GPIO_Pin_9);HAL_...
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,一步步实现
在日常开发项目中,显示屏是经常使用的一个部件,显示屏的种类也是多种多样,但对于开发者来说,主要关心的是显示屏所用到的驱动芯片,本次给小伙伴们带来的是 STM32 下的 HAL 库硬件 SPI 驱动 320*240 分辨率的 TFT-LCD,LCD 显示屏驱动芯片为 ST7789,一步步实现如何驱动此类驱动芯片的 LCD 屏幕,话不多...