1、STM32CubeMX
2、MDK5.41
【原理图】LCD_PWR:PD15 //tim4_ch4
TIM4_CH4
LCD_RST:PG12
LCD_WR:
PE11 LCD_CS:
PD14 LCD_SCK
PA5 LCD_SDA PB5
软件配置使用stcubeMX生成基于STM32H755的基础工程
,开启TIM4,打开CH4为普通PWM输出,配置200分频,重载值为500,自动重载
最后生成MDK工程
代码移植使用MDK打开工程后,移植一个st7789基于其他LCD的工程文件。
将工程文件添加进MDK工程,使其加CM4工程编译。
将头文件添加进工程
修改spi发送的函数为hspi1
修改宏定义为对应的DC、CS、RST
#define LCD_RST(n) (n ? HAL_GPIO_WritePin(GPIOG, GPIO_PIN_12, GPIO_PIN_SET) : HAL_GPIO_WritePin(GPIOG, GPIO_PIN_12, GPIO_PIN_RESET))
#define LCD_WR(n) (n ? HAL_GPIO_WritePin(LCD_WR_GPIO_Port, LCD_WR_Pin, GPIO_PIN_SET) : HAL_GPIO_WritePin(LCD_WR_GPIO_Port, LCD_WR_Pin, GPIO_PIN_RESET))
#define LCD_CS(n) (n ? HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET) : HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET))
#define LCD_PWR(n) (n ? __HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_4, 500) : __HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_4, 0))
5. 在main.c中添加定时序开启
//开启TIM4,CHALL CH4 输出PWM
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4);
6. 添加头lcd的头文件引用,初始化lcd,清屏后写入一段测试函数
/* USER CODE BEGIN 2 */
BSP_LED_Init(LED1);
//开启TIM4,CHALL CH4 输出PWM
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4);
lcd_init();
lcd_clear(BLUE);
lcd_show_string(20, 20, 200,40,(uint8_t *) "STM32H755",32,1);
lcd_show_string(20, 80, 200,40, (uint8_t *)"ST7789LCD",32,1);
/* USER CODE END 2 */