ST7789 revised SPI1 and GPIO for DC/CS/RST/BL
This commit is contained in:
parent
c961e6f10d
commit
a57242ba2d
|
@ -89,7 +89,7 @@ void Error_Handler(void);
|
|||
/* USER CODE BEGIN Private defines */
|
||||
#define VOLTAGE_DETECT_Pin GPIO_PIN_15
|
||||
#define VOLTAGE_DETECT_GPIO_Port GPIOA
|
||||
|
||||
/*
|
||||
#if 0
|
||||
//GPIO CONTROL FOR ST7789
|
||||
#define LCD_RST_Pin GPIO_PIN_3
|
||||
|
@ -101,17 +101,18 @@ void Error_Handler(void);
|
|||
#define LCD_DC_Pin GPIO_PIN_5
|
||||
#define LCD_DC_GPIO_Port GPIOB
|
||||
#endif
|
||||
|
||||
*/
|
||||
|
||||
#define LED_Pin GPIO_PIN_8
|
||||
#define LED_GPIO_Port GPIOA
|
||||
|
||||
/* FOR FLASH CHIP */
|
||||
#define W25Q_CS_Pin GPIO_PIN_9
|
||||
#define W25Q_CS_GPIO_Port GPIOA
|
||||
|
||||
/* FOR LCD ST7789 SPI MOSI CONTROL */
|
||||
#if defined(USE_IPS_LCD_ST7789)
|
||||
/*
|
||||
#if defined(STM32WL55xx) // FOR NUCLEO WL55JC1/2
|
||||
#define MEMS_SPI_SCK_Pin GPIO_PIN_3
|
||||
#define MEMS_SPI_SCK_GPIO_Port GPIOB
|
||||
#define MEMS_SPI_MOSI_Pin GPIO_PIN_5
|
||||
|
@ -125,6 +126,25 @@ void Error_Handler(void);
|
|||
#define LCD_CS_GPIO_Port GPIOA
|
||||
#define LCD_BL_Pin GPIO_PIN_7
|
||||
#define LCD_BL_GPIO_Port GPIOA
|
||||
#endif
|
||||
*/
|
||||
|
||||
//#if defined(STM32WLE5xx) // for STS_IOT_CORE
|
||||
#define MEMS_SPI_SCK_Pin GPIO_PIN_5
|
||||
#define MEMS_SPI_SCK_GPIO_Port GPIOA
|
||||
#define MEMS_SPI_MOSI_Pin GPIO_PIN_7
|
||||
#define MEMS_SPI_MOSI_GPIO_Port GPIOA
|
||||
|
||||
#define LCD_RST_Pin GPIO_PIN_4
|
||||
#define LCD_RST_GPIO_Port GPIOB
|
||||
#define LCD_DC_Pin GPIO_PIN_3
|
||||
#define LCD_DC_GPIO_Port GPIOB
|
||||
#define LCD_CS_Pin GPIO_PIN_8
|
||||
#define LCD_CS_GPIO_Port GPIOB
|
||||
#define LCD_BL_Pin GPIO_PIN_5
|
||||
#define LCD_BL_GPIO_Port GPIOB
|
||||
|
||||
//#endif
|
||||
|
||||
#define KEY1_Pin GPIO_PIN_0
|
||||
#define KEY1_GPIO_Port GPIOA
|
||||
|
|
|
@ -97,13 +97,25 @@ void MX_GPIO_Init(void)
|
|||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
HAL_GPIO_Init(LCD_CS_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
|
||||
/*Configure GPIO pins : PBPin PBPin PBPin */
|
||||
GPIO_InitStruct.Pin = LCD_RST_Pin|LCD_BL_Pin|LCD_DC_Pin;
|
||||
GPIO_InitStruct.Pin = LCD_RST_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
HAL_GPIO_Init(LCD_RST_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = LCD_BL_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
HAL_GPIO_Init(LCD_BL_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = LCD_DC_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
HAL_GPIO_Init(LCD_DC_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
|
||||
/* EXTI interrupt init*/
|
||||
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
|
||||
|
|
|
@ -104,20 +104,20 @@ int main(void)
|
|||
MX_LoRaWAN_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
//MX_ADC_Init();
|
||||
|
||||
|
||||
MX_GPIO_Init();
|
||||
MX_I2C_Init();
|
||||
MX_SPI_Init();
|
||||
MX_GPIO_Init();
|
||||
|
||||
MX_DMA_Init();
|
||||
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "START LCD init....\r\n");
|
||||
|
||||
BSP_LCD_Init();
|
||||
BSP_LCD_Clear(LCD_COLOR_BLUE);
|
||||
BSP_LCD_DisplayOn();
|
||||
|
||||
//APP_LOG(TS_OFF, VLEVEL_L, "BSP LCD TEST....\r\n");
|
||||
//BSP_LCD_Test();
|
||||
LCD_BL_ON();
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "BSP LCD TEST....\r\n");
|
||||
BSP_LCD_Test();
|
||||
|
||||
// BSP_LCD_DisplayOff();
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
|
|||
HAL_DMA_DeInit(spiHandle->hdmatx);
|
||||
#endif
|
||||
/* SPI1 interrupt Deinit */
|
||||
//HAL_NVIC_DisableIRQ(SPI1_IRQn);
|
||||
HAL_NVIC_DisableIRQ(SPI1_IRQn);
|
||||
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END SPI1_MspDeInit 1 */
|
||||
|
|
|
@ -181,6 +181,7 @@ static void drawMeasurement(void ) {
|
|||
memset(tempBuffer,0,sizeof(tempBuffer));
|
||||
sprintf(tempBuffer,(char *)"%2d", (uint8_t)max(v_water_cnt, h_water_cnt));
|
||||
BSP_LCD_DisplayStringAt(ST7789V_LCD_PIXEL_WIDTH-60, 15,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_YELLOW);
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "%s\r\n",tempBuffer);
|
||||
|
||||
}
|
||||
|
||||
|
@ -256,7 +257,7 @@ void blackOutFilter(void)
|
|||
if ((temp1 + (float)(waterTempThreshold/10.0)) < averageTemp )
|
||||
{
|
||||
zoneMask[y*32+x] ++;
|
||||
//APP_LOG(TS_OFF, VLEVEL_L, "Detect Zone X=%d Y=%d Count=%d T=%2.2f \r\n", x, y, zoneMask[y*32+x], (int)(temp1+waterTempThreshold/10.0));
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "Detect Zone X=%d Y=%d Count=%d T=%2.2f \r\n", x, y, zoneMask[y*32+x], (int)(temp1+waterTempThreshold/10.0));
|
||||
waterSpillCount ++;
|
||||
}
|
||||
}
|
||||
|
@ -299,7 +300,7 @@ void mlx90640_display_process(void)
|
|||
// BSP_LCD_DisplayOff();
|
||||
}
|
||||
|
||||
//APP_LOG(TS_OFF, VLEVEL_L, "Water Spill Detected Level = %d of %d, \r\n", waterSpillCount, 30*20);
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "Water Spill Detected Level = %d of %d, \r\n", waterSpillCount, 30*20);
|
||||
}
|
||||
|
||||
void mlx90640_display_init(void){
|
||||
|
|
|
@ -128,6 +128,8 @@ void st7789v_Init(void)
|
|||
LCD_RST_HIGH();
|
||||
HAL_Delay(100);
|
||||
|
||||
LCD_BL_OFF();
|
||||
HAL_Delay(100);
|
||||
LCD_BL_ON();
|
||||
HAL_Delay(100);
|
||||
/* Out of sleep mode, 0 args, no delay */
|
||||
|
|
|
@ -77,8 +77,8 @@ EndDependencies */
|
|||
#define POLY_Y(Z) ((int32_t)((Points + (Z))->Y))
|
||||
//#define NULL (void *)0
|
||||
|
||||
#define MAX_HEIGHT_FONT 24
|
||||
#define MAX_WIDTH_FONT 17
|
||||
#define MAX_HEIGHT_FONT 16
|
||||
#define MAX_WIDTH_FONT 11
|
||||
#define OFFSET_BITMAP 54
|
||||
/**
|
||||
* @}
|
||||
|
@ -155,7 +155,6 @@ uint8_t BSP_LCD_Init(void)
|
|||
// lcd_drv = &hx8347d_drv;
|
||||
lcd_drv = &st7789v_drv;
|
||||
|
||||
LCD_IO_Init();
|
||||
/* LCD Init */
|
||||
lcd_drv->Init();
|
||||
lcd_drv->SetRotation(0);
|
||||
|
@ -1090,10 +1089,11 @@ static void SPIx_MspInit(void)
|
|||
/* Configure SPI MISO and MOSI */
|
||||
gpioinitstruct.Pin = LCD_SPIx_MOSI_PIN;
|
||||
HAL_GPIO_Init(LCD_SPIx_MISO_MOSI_GPIO_PORT, &gpioinitstruct);
|
||||
|
||||
#if 0
|
||||
gpioinitstruct.Pin = LCD_SPIx_MISO_PIN;
|
||||
gpioinitstruct.Mode = GPIO_MODE_INPUT;
|
||||
HAL_GPIO_Init(LCD_SPIx_MISO_MOSI_GPIO_PORT, &gpioinitstruct);
|
||||
#endif
|
||||
|
||||
/*** Configure the SPI peripheral ***/
|
||||
/* Enable SPI clock */
|
||||
|
@ -1117,9 +1117,9 @@ static void SPIx_Init(void)
|
|||
- PCLK2 max frequency is 32 MHz
|
||||
*/
|
||||
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
|
||||
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
|
||||
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
|
||||
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
|
||||
hspi1.Init.Direction = SPI_DIRECTION_1LINE;
|
||||
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
|
||||
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH; //SPI_POLARITY_LOW;
|
||||
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||
hspi1.Init.CRCPolynomial = 7;
|
||||
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||
|
@ -1203,7 +1203,7 @@ void LCD_IO_Init(void)
|
|||
/* LCD_CS_GPIO and LCD_DC_GPIO Periph clock enable */
|
||||
LCD_CS_GPIO_CLK_ENABLE();
|
||||
LCD_DC_GPIO_CLK_ENABLE();
|
||||
|
||||
LCD_RST_GPIO_CLK_ENABLE();
|
||||
/* Configure LCD_CS_PIN pin: LCD CS pin */
|
||||
gpioinitstruct.Pin = LCD_CS_PIN;
|
||||
gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
|
|
|
@ -142,14 +142,28 @@ typedef enum
|
|||
|
||||
#define LCD_SPIx_SCK_GPIO_PORT MEMS_SPI_SCK_GPIO_Port
|
||||
#define LCD_SPIx_SCK_PIN MEMS_SPI_SCK_Pin
|
||||
#if 0 // for SPI GPIO PB3/PB5
|
||||
#define LCD_SPIx_SCK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
|
||||
#define LCD_SPIx_SCK_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
||||
#endif
|
||||
|
||||
#define LCD_SPIx_SCK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
||||
#define LCD_SPIx_SCK_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
||||
|
||||
#if 0 // for SPI GPIO PB3/PB5
|
||||
#define LCD_SPIx_MISO_MOSI_GPIO_PORT MEMS_SPI_MOSI_GPIO_Port
|
||||
#define LCD_SPIx_MISO_MOSI_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
|
||||
#define LCD_SPIx_MISO_MOSI_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
||||
#define LCD_SPIx_MISO_PIN GPIO_PIN_6
|
||||
#define LCD_SPIx_MOSI_PIN MEMS_SPI_MOSI_Pin
|
||||
#endif
|
||||
|
||||
#define LCD_SPIx_MISO_MOSI_GPIO_PORT MEMS_SPI_MOSI_GPIO_Port
|
||||
#define LCD_SPIx_MISO_MOSI_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
||||
#define LCD_SPIx_MISO_MOSI_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
||||
#define LCD_SPIx_MISO_PIN GPIO_PIN_6
|
||||
#define LCD_SPIx_MOSI_PIN MEMS_SPI_MOSI_Pin
|
||||
|
||||
/* Maximum Timeout values for flags waiting loops. These timeouts are not based
|
||||
on accurate values, they just guarantee that the application will not remain
|
||||
stuck if the SPI communication is corrupted.
|
||||
|
@ -157,6 +171,34 @@ typedef enum
|
|||
conditions (interrupts routines ...). */
|
||||
#define NUCLEO_SPIx_TIMEOUT_MAX 1000
|
||||
|
||||
/**
|
||||
* @brief LCD Control Interface pins
|
||||
*/
|
||||
#define LCD_CS_PIN LCD_CS_Pin
|
||||
#define LCD_CS_GPIO_PORT LCD_CS_GPIO_Port
|
||||
#define LCD_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
|
||||
#define LCD_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
||||
|
||||
/**
|
||||
* @brief LCD Data/Command Interface pins
|
||||
*/
|
||||
#define LCD_DC_PIN LCD_DC_Pin
|
||||
#define LCD_DC_GPIO_PORT LCD_DC_GPIO_Port
|
||||
#if 0 // for DC GPIO port A
|
||||
#define LCD_DC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
||||
#define LCD_DC_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
||||
#endif
|
||||
|
||||
#define LCD_DC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
|
||||
#define LCD_DC_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
||||
/**
|
||||
* @brief LCD Control Interface pins
|
||||
*/
|
||||
#define LCD_RST_PIN LCD_RST_Pin
|
||||
#define LCD_RST_GPIO_PORT LCD_RST_GPIO_Port
|
||||
#define LCD_RST_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
|
||||
#define LCD_RST_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
||||
|
||||
/**
|
||||
* @brief LCD Control Lines management
|
||||
*/
|
||||
|
@ -168,29 +210,6 @@ typedef enum
|
|||
#define LCD_DC_HIGH() HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_SET)
|
||||
#define LCD_BL_ON() HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_SET)
|
||||
#define LCD_BL_OFF() HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_RESET)
|
||||
/**
|
||||
* @brief LCD Control Interface pins
|
||||
*/
|
||||
#define LCD_CS_PIN LCD_CS_Pin
|
||||
#define LCD_CS_GPIO_PORT LCD_CS_GPIO_Port
|
||||
#define LCD_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
||||
#define LCD_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
||||
|
||||
/**
|
||||
* @brief LCD Data/Command Interface pins
|
||||
*/
|
||||
#define LCD_DC_PIN LCD_DC_Pin
|
||||
#define LCD_DC_GPIO_PORT LCD_DC_GPIO_Port
|
||||
#define LCD_DC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
||||
#define LCD_DC_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
||||
|
||||
/**
|
||||
* @brief LCD Control Interface pins
|
||||
*/
|
||||
#define LCD_RST_PIN LCD_RST_Pin
|
||||
#define LCD_RST_GPIO_PORT LCD_RST_GPIO_Port
|
||||
#define LCD_RST_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
||||
#define LCD_RST_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue