Display something

This commit is contained in:
Jasper Blanckenburg 2023-01-17 20:10:32 +01:00
parent 0739746d4d
commit 50cfe87592
4 changed files with 14484 additions and 30 deletions

14435
Core/Inc/ft_logo_orange.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,10 @@
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "ft_logo_orange.h"
#include "stm32h7xx_hal.h"
#include "stm32h7xx_hal_ltdc.h"
#include <stdint.h>
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
@ -91,14 +94,21 @@ void DISP_WriteReg(uint8_t addr, uint8_t *data, size_t data_len) {
} }
void DISP_Init() { void DISP_Init() {
// SET password // B9h: Enable extended commands
uint8_t data0[] = {0xFF, 0x83, 0x57}; uint8_t data0[] = {0xFF, 0x83, 0x57};
DISP_WriteReg(0xB9, data0, sizeof(data0)); DISP_WriteReg(0xB9, data0, sizeof(data0));
// SET power // B1h: Set power control
uint8_t data1[] = {0x00, 0x16, 0x1C, 0x1C, 0xC3, 0x5C}; uint8_t data1[] = {0x00, 0x16, 0x1C, 0x1C, 0xC3, 0x5C};
DISP_WriteReg(0xB1, data1, sizeof(data1)); DISP_WriteReg(0xB1, data1, sizeof(data1));
// ? // B3h: Set RGB interface
uint8_t data2[] = {0x53, 0x00, 0x05, 0x05}; // Disable SDO pin
// Write directly to display (not internal GRAM)
// Data read on rising edge of DCLK
// HSYNC & VSYNC Activ low
// DE Active high
// Horizontal front porch 5
// Vertical front porch 2
uint8_t data2[] = {0x53, 0x00, 0x05, 0x02};
DISP_WriteReg(0xB3, data2, sizeof(data2)); DISP_WriteReg(0xB3, data2, sizeof(data2));
// SET cyc // SET cyc
uint8_t data3[] = {0x32, 0x40, 0x00, 0x2A, 0x2A, 0x0D, 0x78}; uint8_t data3[] = {0x32, 0x40, 0x00, 0x2A, 0x2A, 0x0D, 0x78};
@ -138,6 +148,7 @@ void DISP_Init() {
// Normal display mode // Normal display mode
DISP_WriteReg(0x13, NULL, 0); DISP_WriteReg(0x13, NULL, 0);
// Display on // Display on
DISP_WriteReg(0x29, NULL, 0);
} }
/* USER CODE END 0 */ /* USER CODE END 0 */
@ -172,17 +183,21 @@ int main(void) {
/* Initialize all configured peripherals */ /* Initialize all configured peripherals */
MX_GPIO_Init(); MX_GPIO_Init();
MX_LTDC_Init();
MX_USART3_UART_Init(); MX_USART3_UART_Init();
MX_USB_OTG_HS_USB_Init(); MX_USB_OTG_HS_USB_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
HAL_GPIO_WritePin(SPI1_CSX_GPIO_Port, SPI1_CSX_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(SPI1_CSX_GPIO_Port, SPI1_CSX_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(SPI1_SCL_GPIO_Port, SPI1_SCL_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(SPI1_SCL_GPIO_Port, SPI1_SCL_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(DISP_RESET_GPIO_Port, DISP_RESET_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(DISP_RESET_GPIO_Port, DISP_RESET_Pin, GPIO_PIN_RESET);
HAL_Delay(1000); HAL_Delay(150);
HAL_GPIO_WritePin(DISP_RESET_GPIO_Port, DISP_RESET_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(DISP_RESET_GPIO_Port, DISP_RESET_Pin, GPIO_PIN_SET);
HAL_Delay(1000); HAL_Delay(150);
DISP_Init(); DISP_Init();
HAL_Delay(500);
MX_LTDC_Init();
// if (HAL_LTDC_Reload(&hltdc, LTDC_RELOAD_IMMEDIATE) != HAL_OK) {
// Error_Handler();
// }
/* USER CODE END 2 */ /* USER CODE END 2 */
/* Infinite loop */ /* Infinite loop */
@ -282,34 +297,34 @@ static void MX_LTDC_Init(void) {
hltdc.Instance = LTDC; hltdc.Instance = LTDC;
hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL; hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL; hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AH; hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC; hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
hltdc.Init.HorizontalSync = 5; hltdc.Init.HorizontalSync = 4;
hltdc.Init.VerticalSync = 2; hltdc.Init.VerticalSync = 1;
hltdc.Init.AccumulatedHBP = 10; hltdc.Init.AccumulatedHBP = 9;
hltdc.Init.AccumulatedVBP = 4; hltdc.Init.AccumulatedVBP = 3;
hltdc.Init.AccumulatedActiveW = 330; hltdc.Init.AccumulatedActiveW = 329;
hltdc.Init.AccumulatedActiveH = 484; hltdc.Init.AccumulatedActiveH = 483;
hltdc.Init.TotalWidth = 335; hltdc.Init.TotalWidth = 334;
hltdc.Init.TotalHeigh = 486; hltdc.Init.TotalHeigh = 485;
hltdc.Init.Backcolor.Blue = 0; hltdc.Init.Backcolor.Blue = 0;
hltdc.Init.Backcolor.Green = 0; hltdc.Init.Backcolor.Green = 255;
hltdc.Init.Backcolor.Red = 255; hltdc.Init.Backcolor.Red = 255;
if (HAL_LTDC_Init(&hltdc) != HAL_OK) { if (HAL_LTDC_Init(&hltdc) != HAL_OK) {
Error_Handler(); Error_Handler();
} }
pLayerCfg.WindowX0 = 0; pLayerCfg.WindowX0 = 0;
pLayerCfg.WindowX1 = 0; pLayerCfg.WindowX1 = 320;
pLayerCfg.WindowY0 = 0; pLayerCfg.WindowY0 = 0;
pLayerCfg.WindowY1 = 0; pLayerCfg.WindowY1 = 480;
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB888; pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB888;
pLayerCfg.Alpha = 0; pLayerCfg.Alpha = 255;
pLayerCfg.Alpha0 = 0; pLayerCfg.Alpha0 = 0;
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA; pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA; pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;
pLayerCfg.FBStartAdress = 0; pLayerCfg.FBStartAdress = (uint32_t)&image_data_ft_logo_orange;
pLayerCfg.ImageWidth = 0; pLayerCfg.ImageWidth = 320;
pLayerCfg.ImageHeight = 0; pLayerCfg.ImageHeight = 480;
pLayerCfg.Backcolor.Blue = 0; pLayerCfg.Backcolor.Blue = 0;
pLayerCfg.Backcolor.Green = 0; pLayerCfg.Backcolor.Green = 0;
pLayerCfg.Backcolor.Red = 0; pLayerCfg.Backcolor.Red = 0;

View File

@ -5,17 +5,21 @@ File.Version=6
GPIO.groupedBy=Group By Peripherals GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=true KeepUserPlacement=true
LTDC.ActiveW=320 LTDC.ActiveW=320
LTDC.Alpha_L0=255
LTDC.DEPolarity=LTDC_DEPOLARITY_AH LTDC.DEPolarity=LTDC_DEPOLARITY_AH
LTDC.Green=255
LTDC.HBP=5 LTDC.HBP=5
LTDC.HFP=5 LTDC.HFP=5
LTDC.HSync=6 LTDC.HSync=5
LTDC.IPParameters=ActiveW,HSync,HBP,HFP,VSync,DEPolarity,Layers,PixelFormat_L0,WindowX1_L0,WindowY1_L0,Red LTDC.IPParameters=ActiveW,HSync,HBP,HFP,VSync,DEPolarity,Layers,PixelFormat_L0,WindowX1_L0,WindowY1_L0,Red,Green,Alpha_L0,ImageWidth_L0,ImageHeight_L0
LTDC.ImageHeight_L0=480
LTDC.ImageWidth_L0=320
LTDC.Layers=0 LTDC.Layers=0
LTDC.PixelFormat_L0=LTDC_PIXEL_FORMAT_RGB888 LTDC.PixelFormat_L0=LTDC_PIXEL_FORMAT_RGB888
LTDC.Red=255 LTDC.Red=255
LTDC.VSync=3 LTDC.VSync=2
LTDC.WindowX1_L0=0 LTDC.WindowX1_L0=320
LTDC.WindowY1_L0=0 LTDC.WindowY1_L0=480
Mcu.CPN=STM32H7A3ZIT6Q Mcu.CPN=STM32H7A3ZIT6Q
Mcu.Family=STM32H7 Mcu.Family=STM32H7
Mcu.IP0=CORTEX_M7 Mcu.IP0=CORTEX_M7

View File

@ -1,5 +1,5 @@
########################################################################################################################## ##########################################################################################################################
# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Jan 17 17:33:34 CET 2023] # File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Jan 17 17:58:08 CET 2023]
########################################################################################################################## ##########################################################################################################################
# ------------------------------------------------ # ------------------------------------------------