revised spi setting
This commit is contained in:
parent
2f01dcf93c
commit
959cfeec63
|
@ -84,10 +84,12 @@ void Error_Handler(void);
|
||||||
#define USARTx_TX_Pin GPIO_PIN_2
|
#define USARTx_TX_Pin GPIO_PIN_2
|
||||||
#define USARTx_TX_GPIO_Port GPIOA
|
#define USARTx_TX_GPIO_Port GPIOA
|
||||||
|
|
||||||
|
#define USE_IPS_LCD_ST7789
|
||||||
|
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
#define VOLTAGE_DETECT_Pin GPIO_PIN_15
|
#define VOLTAGE_DETECT_Pin GPIO_PIN_15
|
||||||
#define VOLTAGE_DETECT_GPIO_Port GPIOA
|
#define VOLTAGE_DETECT_GPIO_Port GPIOA
|
||||||
|
#if 0
|
||||||
//SPI1 ST7789
|
//SPI1 ST7789
|
||||||
#define LCD_RES_Pin GPIO_PIN_3 //ST7789, Pin-5
|
#define LCD_RES_Pin GPIO_PIN_3 //ST7789, Pin-5
|
||||||
#define LCD_RES_GPIO_Port GPIOB
|
#define LCD_RES_GPIO_Port GPIOB
|
||||||
|
@ -103,7 +105,7 @@ void Error_Handler(void);
|
||||||
|
|
||||||
#define LCD_TE_Pin GPIO_PIN_13
|
#define LCD_TE_Pin GPIO_PIN_13
|
||||||
#define LCD_TE_GPIO_Port GPIOB
|
#define LCD_TE_GPIO_Port GPIOB
|
||||||
|
#endif
|
||||||
|
|
||||||
#define KEY1_Pin GPIO_PIN_0
|
#define KEY1_Pin GPIO_PIN_0
|
||||||
#define KEY1_GPIO_Port GPIOA
|
#define KEY1_GPIO_Port GPIOA
|
||||||
|
@ -116,16 +118,16 @@ void Error_Handler(void);
|
||||||
#define W25Q_CS_Pin GPIO_PIN_9
|
#define W25Q_CS_Pin GPIO_PIN_9
|
||||||
#define W25Q_CS_GPIO_Port GPIOA
|
#define W25Q_CS_GPIO_Port GPIOA
|
||||||
|
|
||||||
|
#if defined(USE_IPS_LCD_ST7789)
|
||||||
#define LCD_RST_Pin GPIO_PIN_3
|
#define LCD_RST_Pin GPIO_PIN_4
|
||||||
#define LCD_RST_GPIO_Port GPIOB
|
#define LCD_RST_GPIO_Port GPIOA
|
||||||
#define LCD_BL_Pin GPIO_PIN_8
|
|
||||||
#define LCD_BL_GPIO_Port GPIOB
|
|
||||||
#define LCD_CS_Pin GPIO_PIN_10
|
|
||||||
#define LCD_CS_GPIO_Port GPIOB
|
|
||||||
#define LCD_DC_Pin GPIO_PIN_5
|
#define LCD_DC_Pin GPIO_PIN_5
|
||||||
#define LCD_DC_GPIO_Port GPIOB
|
#define LCD_DC_GPIO_Port GPIOA
|
||||||
|
#define LCD_CS_Pin GPIO_PIN_6
|
||||||
|
#define LCD_CS_GPIO_Port GPIOA
|
||||||
|
#define LCD_BL_Pin GPIO_PIN_7
|
||||||
|
#define LCD_BL_GPIO_Port GPIOA
|
||||||
|
#endif
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -29,7 +29,8 @@ extern "C" {
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
/* USER CODE BEGIN Includes */
|
/* USER CODE BEGIN Includes */
|
||||||
|
/*
|
||||||
|
#if 0
|
||||||
#if defined(STM32WLE5xx)||defined(STM32WL55xx)
|
#if defined(STM32WLE5xx)||defined(STM32WL55xx)
|
||||||
#define MEMS_SPI_SCK_Pin GPIO_PIN_5 //GPIO_PIN_3
|
#define MEMS_SPI_SCK_Pin GPIO_PIN_5 //GPIO_PIN_3
|
||||||
#define MEMS_SPI_SCK_GPIO_Port GPIOA //GPIOB
|
#define MEMS_SPI_SCK_GPIO_Port GPIOA //GPIOB
|
||||||
|
@ -45,7 +46,20 @@ extern "C" {
|
||||||
#define MEMS_ENABLE_Pin GPIO_PIN_5
|
#define MEMS_ENABLE_Pin GPIO_PIN_5
|
||||||
#define MEMS_ENABLE_GPIO_Port GPIOB
|
#define MEMS_ENABLE_GPIO_Port GPIOB
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
// For SPI LCD display, master transmit only
|
||||||
|
//#if defined(USE_IPS_LCD_ST7789)
|
||||||
|
#define MEMS_SPI_SCK_Pin GPIO_PIN_3
|
||||||
|
#define MEMS_SPI_SCK_GPIO_Port GPIOB
|
||||||
|
#define MEMS_SPI_MOSI_Pin GPIO_PIN_5
|
||||||
|
#define MEMS_SPI_MOSI_GPIO_Port GPIOB
|
||||||
|
//#define MEMS_SENSOR_INTERRUPT_Pin GPIO_PIN_8
|
||||||
|
//#define MEMS_SENSOR_INTERRUPT_GPIO_Port GPIOA
|
||||||
|
//#define MEMS_SENSOR_INTERRUPT_EXTI_IRQn EXTI9_5_IRQn
|
||||||
|
//#define MEMS_ENABLE_Pin GPIO_PIN_5
|
||||||
|
//#define MEMS_ENABLE_GPIO_Port GPIOB
|
||||||
|
//#endif
|
||||||
|
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
|
|
@ -55,12 +55,12 @@ void MX_GPIO_Init(void)
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
//HAL_GPIO_WritePin(GPIOA, LCD_CS_Pin|LCD_RES_Pin|W25Q_CS_Pin, GPIO_PIN_RESET);
|
//HAL_GPIO_WritePin(GPIOA, LCD_CS_Pin|LCD_RES_Pin|W25Q_CS_Pin, GPIO_PIN_RESET);
|
||||||
HAL_GPIO_WritePin(LCD_RES_GPIO_Port, LCD_RES_Pin, GPIO_PIN_SET);
|
HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET);
|
||||||
|
|
||||||
HAL_GPIO_WritePin(LCD_BLK_GPIO_Port, LCD_BLK_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_SET);
|
||||||
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET);
|
||||||
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET);
|
||||||
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
//HAL_GPIO_WritePin(GPIOB, LCD_TE_Pin|LCD_DC_Pin|LED_Pin, GPIO_PIN_RESET);
|
//HAL_GPIO_WritePin(GPIOB, LCD_TE_Pin|LCD_DC_Pin|LED_Pin, GPIO_PIN_RESET);
|
||||||
|
@ -106,11 +106,11 @@ void MX_GPIO_Init(void)
|
||||||
|
|
||||||
|
|
||||||
/*Configure GPIO pins : PBPin PBPin PBPin */
|
/*Configure GPIO pins : PBPin PBPin PBPin */
|
||||||
GPIO_InitStruct.Pin = LCD_RES_Pin|LCD_BLK_Pin|LCD_DC_Pin;
|
GPIO_InitStruct.Pin = LCD_RST_Pin|LCD_BL_Pin|LCD_DC_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
/* EXTI interrupt init*/
|
/* EXTI interrupt init*/
|
||||||
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
|
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
|
||||||
|
|
|
@ -127,28 +127,34 @@ int main(void)
|
||||||
/* USER CODE END SysInit */
|
/* USER CODE END SysInit */
|
||||||
|
|
||||||
/* Initialize all configured peripherals */
|
/* Initialize all configured peripherals */
|
||||||
MX_GPIO_Init();
|
|
||||||
MX_LoRaWAN_Init();
|
MX_LoRaWAN_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
//MX_ADC_Init();
|
//MX_ADC_Init();
|
||||||
MX_SPI_Init();
|
MX_SPI_Init();
|
||||||
|
MX_GPIO_Init();
|
||||||
|
|
||||||
MX_I2C_Init();
|
MX_I2C_Init();
|
||||||
|
|
||||||
//MX_DMA_Init();
|
//MX_DMA_Init();
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "START LCD init....\r\n");
|
APP_LOG(TS_OFF, VLEVEL_L, "START LCD init....\r\n");
|
||||||
|
|
||||||
BSP_LCD_Init();
|
BSP_LCD_Init();
|
||||||
MLX90640_I2CInit();
|
|
||||||
mlx90640_display_init();
|
BSP_LCD_Test();
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "DISPLAY ON....\r\n");
|
|
||||||
BSP_LCD_DisplayOn();
|
MLX90640_I2CInit();
|
||||||
BSP_LCD_Clear(LCD_COLOR_YELLOW);
|
mlx90640_display_init();
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "WIDTH = %d, HEIGHT =%d \r\n", BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
|
APP_LOG(TS_OFF, VLEVEL_L, "DISPLAY ON....\r\n");
|
||||||
BSP_LCD_DisplayStringAt(45,45,"SmarToilets",LEFT_MODE,LCD_COLOR_BLUE);
|
BSP_LCD_DisplayOn();
|
||||||
BSP_LCD_SetRotation(1);
|
BSP_LCD_Clear(LCD_COLOR_YELLOW);
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "WIDTH = %d, HEIGHT =%d \r\n", BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
|
APP_LOG(TS_OFF, VLEVEL_L, "WIDTH = %d, HEIGHT =%d \r\n", BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
|
||||||
BSP_LCD_DisplayStringAt(45,45,"SmarToilets",LEFT_MODE,LCD_COLOR_RED);
|
BSP_LCD_DisplayStringAt(45,45,"SmarToilets",LEFT_MODE,LCD_COLOR_BLUE);
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "DISPLAY LOGO....\r\n");
|
BSP_LCD_SetRotation(1);
|
||||||
BSP_LCD_DisplayStringAt(45,45,"SmarToilets",LEFT_MODE,LCD_COLOR_BLUE);
|
APP_LOG(TS_OFF, VLEVEL_L, "WIDTH = %d, HEIGHT =%d \r\n", BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
|
||||||
|
BSP_LCD_DisplayStringAt(45,45,"SmarToilets",LEFT_MODE,LCD_COLOR_RED);
|
||||||
|
APP_LOG(TS_OFF, VLEVEL_L, "DISPLAY LOGO....\r\n");
|
||||||
|
BSP_LCD_DisplayStringAt(45,45,"SmarToilets",LEFT_MODE,LCD_COLOR_BLUE);
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
/* USER CODE END 0 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
SPI_HandleTypeDef hspi1;
|
SPI_HandleTypeDef hspi1;
|
||||||
//DMA_HandleTypeDef hdma_spi1_rx;
|
DMA_HandleTypeDef hdma_spi1_rx;
|
||||||
//DMA_HandleTypeDef hdma_spi1_tx;
|
DMA_HandleTypeDef hdma_spi1_tx;
|
||||||
|
|
||||||
/* SPI1 init function */
|
/* SPI1 init function */
|
||||||
void MX_SPI_Init(void)
|
void MX_SPI_Init(void)
|
||||||
|
@ -41,16 +41,16 @@ void MX_SPI_Init(void)
|
||||||
/* USER CODE END SPI1_Init 1 */
|
/* USER CODE END SPI1_Init 1 */
|
||||||
hspi1.Instance = SPI1;
|
hspi1.Instance = SPI1;
|
||||||
hspi1.Init.Mode = SPI_MODE_MASTER;
|
hspi1.Init.Mode = SPI_MODE_MASTER;
|
||||||
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
|
hspi1.Init.Direction = SPI_DIRECTION_1LINE;
|
||||||
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
|
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||||
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
|
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
|
||||||
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
|
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
|
||||||
hspi1.Init.NSS = SPI_NSS_SOFT;
|
hspi1.Init.NSS = SPI_NSS_SOFT;
|
||||||
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; //SPI_BAUDRATEPRESCALER_64;
|
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; //SPI_BAUDRATEPRESCALER_64;
|
||||||
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
||||||
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||||
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
//hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||||
hspi1.Init.CRCPolynomial = 10;
|
hspi1.Init.CRCPolynomial = 7;
|
||||||
//hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
//hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
||||||
//hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
//hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
|
||||||
if (HAL_SPI_Init(&hspi1) != HAL_OK)
|
if (HAL_SPI_Init(&hspi1) != HAL_OK)
|
||||||
|
@ -89,7 +89,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
||||||
* PA6 SPI1_MISO
|
* PA6 SPI1_MISO
|
||||||
* PA7 SPI1_MOSI
|
* PA7 SPI1_MOSI
|
||||||
*/
|
*/
|
||||||
GPIO_InitStruct.Pin = MEMS_SPI_MOSI_Pin||MEMS_SPI_MISO_Pin; //MEMS_SPI_MOSI_Pin|MEMS_CS_N_Pin|MEMS_SPI_MISO_Pin;
|
GPIO_InitStruct.Pin = MEMS_SPI_MOSI_Pin; //MEMS_SPI_MOSI_Pin|MEMS_CS_N_Pin|MEMS_SPI_MISO_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
|
@ -102,7 +102,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
|
||||||
HAL_GPIO_Init(MEMS_SPI_SCK_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(MEMS_SPI_SCK_GPIO_Port, &GPIO_InitStruct);
|
||||||
#if 0
|
#if 1
|
||||||
/* SPI1 DMA Init */
|
/* SPI1 DMA Init */
|
||||||
/* SPI1_RX Init */
|
/* SPI1_RX Init */
|
||||||
hdma_spi1_rx.Instance = DMA1_Channel2;
|
hdma_spi1_rx.Instance = DMA1_Channel2;
|
||||||
|
@ -174,10 +174,10 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
|
||||||
* PA6 SPI1_MISO
|
* PA6 SPI1_MISO
|
||||||
* PA7 SPI1_MOSI
|
* PA7 SPI1_MOSI
|
||||||
*/
|
*/
|
||||||
HAL_GPIO_DeInit(MEMS_SPI_MOSI_GPIO_Port, MEMS_SPI_MOSI_Pin|MEMS_SPI_MISO_Pin);
|
HAL_GPIO_DeInit(MEMS_SPI_MOSI_GPIO_Port, MEMS_SPI_MOSI_Pin);
|
||||||
|
|
||||||
HAL_GPIO_DeInit(MEMS_SPI_SCK_GPIO_Port, MEMS_SPI_SCK_Pin);
|
HAL_GPIO_DeInit(MEMS_SPI_SCK_GPIO_Port, MEMS_SPI_SCK_Pin);
|
||||||
#if 0
|
#if 1
|
||||||
/* SPI1 DMA DeInit */
|
/* SPI1 DMA DeInit */
|
||||||
HAL_DMA_DeInit(spiHandle->hdmarx);
|
HAL_DMA_DeInit(spiHandle->hdmarx);
|
||||||
HAL_DMA_DeInit(spiHandle->hdmatx);
|
HAL_DMA_DeInit(spiHandle->hdmatx);
|
||||||
|
|
|
@ -252,7 +252,7 @@ void DMA1_Channel2_IRQHandler(void)
|
||||||
/* USER CODE BEGIN DMA1_Channel2_IRQn 0 */
|
/* USER CODE BEGIN DMA1_Channel2_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END DMA1_Channel2_IRQn 0 */
|
/* USER CODE END DMA1_Channel2_IRQn 0 */
|
||||||
//HAL_DMA_IRQHandler(&hdma_spi1_rx);
|
HAL_DMA_IRQHandler(&hdma_spi1_rx);
|
||||||
/* USER CODE BEGIN DMA1_Channel2_IRQn 1 */
|
/* USER CODE BEGIN DMA1_Channel2_IRQn 1 */
|
||||||
|
|
||||||
/* USER CODE END DMA1_Channel2_IRQn 1 */
|
/* USER CODE END DMA1_Channel2_IRQn 1 */
|
||||||
|
@ -266,7 +266,7 @@ void DMA1_Channel3_IRQHandler(void)
|
||||||
/* USER CODE BEGIN DMA1_Channel3_IRQn 0 */
|
/* USER CODE BEGIN DMA1_Channel3_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END DMA1_Channel3_IRQn 0 */
|
/* USER CODE END DMA1_Channel3_IRQn 0 */
|
||||||
//HAL_DMA_IRQHandler(&hdma_spi1_tx);
|
HAL_DMA_IRQHandler(&hdma_spi1_tx);
|
||||||
/* USER CODE BEGIN DMA1_Channel3_IRQn 1 */
|
/* USER CODE BEGIN DMA1_Channel3_IRQn 1 */
|
||||||
|
|
||||||
/* USER CODE END DMA1_Channel3_IRQn 1 */
|
/* USER CODE END DMA1_Channel3_IRQn 1 */
|
||||||
|
@ -286,6 +286,20 @@ void DMA1_Channel5_IRQHandler(void)
|
||||||
/* USER CODE END DMA1_Channel5_IRQn 1 */
|
/* USER CODE END DMA1_Channel5_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles SPI1 Interrupt.
|
||||||
|
*/
|
||||||
|
void SPI1_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN SPI1_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END SPI1_IRQn 0 */
|
||||||
|
HAL_SPI_IRQHandler(&hspi1);
|
||||||
|
/* USER CODE BEGIN SPI1_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END SPI1_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles EXTI Lines [9:5] Interrupt.
|
* @brief This function handles EXTI Lines [9:5] Interrupt.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -135,7 +135,7 @@ static void drawMeasurement(void ) {
|
||||||
// Measure and print center temperature
|
// Measure and print center temperature
|
||||||
centerTemp = (tempValues[383 - 16] + tempValues[383 - 15] + tempValues[384 + 15] + tempValues[384 + 16]) / 4;
|
centerTemp = (tempValues[383 - 16] + tempValues[383 - 15] + tempValues[384 + 15] + tempValues[384 + 16]) / 4;
|
||||||
|
|
||||||
BSP_LCD_SetFont(&Font20);
|
BSP_LCD_SetFont(&Font16);
|
||||||
memset(tempBuffer,0,sizeof(tempBuffer));
|
memset(tempBuffer,0,sizeof(tempBuffer));
|
||||||
sprintf(tempBuffer,(char *)"%2.2f ",centerTemp);
|
sprintf(tempBuffer,(char *)"%2.2f ",centerTemp);
|
||||||
BSP_LCD_DisplayStringAt(88,220,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_RED);
|
BSP_LCD_DisplayStringAt(88,220,(uint8_t *)tempBuffer,LEFT_MODE,LCD_COLOR_RED);
|
||||||
|
@ -172,7 +172,7 @@ static void readTempValues(void) {
|
||||||
APP_LOG(TS_OFF,VLEVEL_L, "\r\n\n\n");
|
APP_LOG(TS_OFF,VLEVEL_L, "\r\n\n\n");
|
||||||
for (uint8_t y=0; y < 24; y++) {
|
for (uint8_t y=0; y < 24; y++) {
|
||||||
for (uint8_t x=0; x<32; x++) {
|
for (uint8_t x=0; x<32; x++) {
|
||||||
APP_LOG(TS_OFF, VLEVEL_L, "%c ", (uint8_t)((((float)tempValues[y*32+x]- 20.0)) + 0x61));
|
APP_LOG(TS_OFF, VLEVEL_L, "%c ", (uint8_t)((((float)tempValues[y*32+x]- 25.0)) + 0x30));
|
||||||
}
|
}
|
||||||
APP_LOG(TS_OFF,VLEVEL_L, "\r\n");
|
APP_LOG(TS_OFF,VLEVEL_L, "\r\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,7 @@ LCD_DrvTypeDef st7789v_drv =
|
||||||
st7789v_GetLcdPixelWidth,
|
st7789v_GetLcdPixelWidth,
|
||||||
st7789v_GetLcdPixelHeight,
|
st7789v_GetLcdPixelHeight,
|
||||||
st7789v_DrawBitmap,
|
st7789v_DrawBitmap,
|
||||||
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
//static uint8_t Is_st7789v_Initialized = 0;
|
//static uint8_t Is_st7789v_Initialized = 0;
|
||||||
|
@ -83,6 +84,18 @@ void st7789v_WriteColor(uint16_t color, uint32_t len);
|
||||||
/** @defgroup st7789v_Private_Functions
|
/** @defgroup st7789v_Private_Functions
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @brief Writes to the selected LCD register.
|
||||||
|
* @param LCDReg: Address of the selected register.
|
||||||
|
* @param LCDRegValue: value to write to the selected register.
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void st7789v_WriteRegCmd(uint8_t LCDReg)
|
||||||
|
{
|
||||||
|
LCD_DC_LOW();
|
||||||
|
LCD_IO_WriteReg(LCDReg);
|
||||||
|
LCD_DC_HIGH();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Writes to the selected LCD register.
|
* @brief Writes to the selected LCD register.
|
||||||
|
@ -92,8 +105,10 @@ void st7789v_WriteColor(uint16_t color, uint32_t len);
|
||||||
*/
|
*/
|
||||||
void st7789v_WriteReg(uint8_t LCDReg, uint8_t LCDRegValue)
|
void st7789v_WriteReg(uint8_t LCDReg, uint8_t LCDRegValue)
|
||||||
{
|
{
|
||||||
|
LCD_DC_LOW();
|
||||||
LCD_IO_WriteReg(LCDReg);
|
LCD_IO_WriteReg(LCDReg);
|
||||||
LCD_IO_WriteMultipleData(&LCDRegValue, 1);
|
LCD_IO_WriteMultipleData(&LCDRegValue, 1);
|
||||||
|
LCD_DC_HIGH();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -106,72 +121,88 @@ void st7789v_Init(void)
|
||||||
|
|
||||||
/* Initialize st7789v low level bus layer -----------------------------------*/
|
/* Initialize st7789v low level bus layer -----------------------------------*/
|
||||||
LCD_IO_Init();
|
LCD_IO_Init();
|
||||||
/* Out of sleep mode, 0 args, no delay */
|
|
||||||
st7789v_WriteReg(0x11, 0x00);
|
|
||||||
/**/
|
|
||||||
LCD_Delay(10);
|
|
||||||
st7789v_WriteReg(0x36, 0x00);
|
|
||||||
|
|
||||||
st7789v_WriteReg(0x3A, 0x55);
|
//LCD_CS_HIGH();
|
||||||
|
|
||||||
|
LCD_RST_LOW();
|
||||||
|
HAL_Delay(10);
|
||||||
|
LCD_RST_HIGH();
|
||||||
|
HAL_Delay(10);
|
||||||
|
|
||||||
|
LCD_BL_ON();
|
||||||
|
HAL_Delay(100);
|
||||||
|
/* Out of sleep mode, 0 args, no delay */
|
||||||
|
st7789v_WriteRegCmd(0x11);
|
||||||
|
HAL_Delay(120);
|
||||||
|
|
||||||
|
st7789v_WriteRegCmd(0x36);
|
||||||
|
if (st7789v_rotation ==0) st7789v_WriteRegCmd(0x00);
|
||||||
|
else if (st7789v_rotation ==1) st7789v_WriteRegCmd(0xC0);
|
||||||
|
if (st7789v_rotation ==2) st7789v_WriteRegCmd(0x70);
|
||||||
|
else st7789v_WriteRegCmd(0xA0);
|
||||||
|
|
||||||
|
|
||||||
|
st7789v_WriteReg(0x3A, 0x05); // 16bit color
|
||||||
|
|
||||||
|
// porch control
|
||||||
st7789v_WriteReg(0xB2, 0x0C);
|
st7789v_WriteReg(0xB2, 0x0C);
|
||||||
st7789v_WriteReg(0xB2, 0x0C);
|
st7789v_WriteReg(0xB2, 0x0C);
|
||||||
st7789v_WriteReg(0xB2, 0x00);
|
st7789v_WriteReg(0xB2, 0x00);
|
||||||
st7789v_WriteReg(0xB2, 0x33);
|
st7789v_WriteReg(0xB2, 0x33);
|
||||||
st7789v_WriteReg(0xB2, 0x33);
|
st7789v_WriteReg(0xB2, 0x33);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
st7789v_WriteReg(0xB7, 0x35); //VGH=13.26V, VGL=-10.43V
|
st7789v_WriteReg(0xB7, 0x35); //VGH=13.26V, VGL=-10.43V
|
||||||
|
|
||||||
st7789v_WriteReg(0xBB, 0x28); //VCOM
|
st7789v_WriteReg(0xBB, 0x32); //VCOM
|
||||||
|
|
||||||
st7789v_WriteReg(0xC0, 0x3C);
|
|
||||||
|
|
||||||
st7789v_WriteReg(0xC2, 0x01);
|
|
||||||
|
|
||||||
st7789v_WriteReg(0xC3, 0x0B); //VAP //5V
|
st7789v_WriteReg(0xC2, 0x01); //VDV VRH enable
|
||||||
|
|
||||||
st7789v_WriteReg(0xC4, 0x20);
|
st7789v_WriteReg(0xC3, 0x15); //VAP //5V
|
||||||
|
|
||||||
st7789v_WriteReg(0xC6, 0x0F);
|
st7789v_WriteReg(0xC4, 0x20); //VDV
|
||||||
|
|
||||||
st7789v_WriteReg(0xD0, 0xA4);
|
st7789v_WriteReg(0xC6, 0x0F); //Frame rate, 60hz
|
||||||
|
|
||||||
|
st7789v_WriteReg(0xD0, 0xA4); //power control
|
||||||
st7789v_WriteReg(0xD0, 0xA1);
|
st7789v_WriteReg(0xD0, 0xA1);
|
||||||
|
|
||||||
|
|
||||||
st7789v_WriteReg(0xE0, 0xD0);
|
st7789v_WriteReg(0xE0, 0xD0);
|
||||||
st7789v_WriteReg(0xE0, 0x01);
|
|
||||||
st7789v_WriteReg(0xE0, 0x08);
|
st7789v_WriteReg(0xE0, 0x08);
|
||||||
st7789v_WriteReg(0xE0, 0x0f);
|
st7789v_WriteReg(0xE0, 0x0E);
|
||||||
st7789v_WriteReg(0xE0, 0x11);
|
st7789v_WriteReg(0xE0, 0x09);
|
||||||
st7789v_WriteReg(0xE0, 0x2a);
|
st7789v_WriteReg(0xE0, 0x09);
|
||||||
st7789v_WriteReg(0xE0, 0x36);
|
st7789v_WriteReg(0xE0, 0x05);
|
||||||
st7789v_WriteReg(0xE0, 0x55);
|
st7789v_WriteReg(0xE0, 0x31);
|
||||||
st7789v_WriteReg(0xE0, 0x44);
|
st7789v_WriteReg(0xE0, 0x33);
|
||||||
st7789v_WriteReg(0xE0, 0x3a);
|
st7789v_WriteReg(0xE0, 0x48);
|
||||||
st7789v_WriteReg(0xE0, 0x0b);
|
st7789v_WriteReg(0xE0, 0x17);
|
||||||
st7789v_WriteReg(0xE0, 0x06);
|
st7789v_WriteReg(0xE0, 0x14);
|
||||||
st7789v_WriteReg(0xE0, 0x11);
|
st7789v_WriteReg(0xE0, 0x15);
|
||||||
st7789v_WriteReg(0xE0, 0x20);
|
st7789v_WriteReg(0xE0, 0x31);
|
||||||
|
st7789v_WriteReg(0xE0, 0x34);
|
||||||
|
|
||||||
|
|
||||||
st7789v_WriteReg(0xE1, 0xD0);
|
st7789v_WriteReg(0xE1, 0xD0);
|
||||||
st7789v_WriteReg(0xE1, 0x02);
|
st7789v_WriteReg(0xE1, 0x08);
|
||||||
st7789v_WriteReg(0xE1, 0x07);
|
st7789v_WriteReg(0xE1, 0x0E);
|
||||||
st7789v_WriteReg(0xE1, 0x0A);
|
st7789v_WriteReg(0xE1, 0x09);
|
||||||
st7789v_WriteReg(0xE1, 0x0b);
|
st7789v_WriteReg(0xE1, 0x09);
|
||||||
st7789v_WriteReg(0xE1, 0x18);
|
st7789v_WriteReg(0xE1, 0x05);
|
||||||
|
st7789v_WriteReg(0xE1, 0x33);
|
||||||
|
st7789v_WriteReg(0xE1, 0x48);
|
||||||
|
st7789v_WriteReg(0xE1, 0x17);
|
||||||
|
st7789v_WriteReg(0xE1, 0x14);
|
||||||
|
st7789v_WriteReg(0xE1, 0x15);
|
||||||
|
st7789v_WriteReg(0xE1, 0x31);
|
||||||
st7789v_WriteReg(0xE1, 0x34);
|
st7789v_WriteReg(0xE1, 0x34);
|
||||||
st7789v_WriteReg(0xE1, 0x43);
|
|
||||||
st7789v_WriteReg(0xE1, 0x4a);
|
|
||||||
st7789v_WriteReg(0xE1, 0x2b);
|
|
||||||
st7789v_WriteReg(0xE1, 0x1b);
|
|
||||||
st7789v_WriteReg(0xE1, 0x1c);
|
|
||||||
st7789v_WriteReg(0xE1, 0x22);
|
|
||||||
st7789v_WriteReg(0xE1, 0x1f);
|
|
||||||
|
|
||||||
st7789v_WriteReg(0x55,0xb0);
|
st7789v_WriteRegCmd(0x21);
|
||||||
st7789v_WriteReg(0x29,0x00);
|
st7789v_WriteRegCmd(0x29);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -181,14 +212,14 @@ void st7789v_Init(void)
|
||||||
*/
|
*/
|
||||||
void st7789v_DisplayOn(void)
|
void st7789v_DisplayOn(void)
|
||||||
{
|
{
|
||||||
// uint8_t data = 0;
|
uint8_t data = 0;
|
||||||
LCD_IO_WriteReg(0x13);/* Partial off (Normal): NORON */
|
LCD_IO_WriteReg(0x13);/* Partial off (Normal): NORON */
|
||||||
LCD_Delay(10);
|
LCD_Delay(10);
|
||||||
LCD_IO_WriteReg(0x29);/* Display on: DISPON */
|
LCD_IO_WriteReg(0x29);/* Display on: DISPON */
|
||||||
LCD_Delay(10);
|
LCD_Delay(10);
|
||||||
// LCD_IO_WriteReg(0x36);/* Memory data access control: MADCTL */
|
LCD_IO_WriteReg(0x36);/* Memory data access control: MADCTL */
|
||||||
// data = 0xC0;
|
data = 0xC0;
|
||||||
// LCD_IO_WriteMultipleData(&data, 1);
|
LCD_IO_WriteMultipleData(&data, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -453,6 +484,7 @@ void st7789_SetRotation(uint8_t rotation)
|
||||||
case 0:
|
case 0:
|
||||||
/* Memory access control: MY = 0, MX = 0, MV = 0, ML = 0 */
|
/* Memory access control: MY = 0, MX = 0, MV = 0, ML = 0 */
|
||||||
/* */
|
/* */
|
||||||
|
#if 0
|
||||||
st7789v_WriteReg(0X36, 0x08);
|
st7789v_WriteReg(0X36, 0x08);
|
||||||
st7789v_WriteReg(0x2A, 0x00);
|
st7789v_WriteReg(0x2A, 0x00);
|
||||||
st7789v_WriteReg(0x2A, 0x00);
|
st7789v_WriteReg(0x2A, 0x00);
|
||||||
|
@ -462,11 +494,13 @@ void st7789_SetRotation(uint8_t rotation)
|
||||||
st7789v_WriteReg(0x2B, 0x00);
|
st7789v_WriteReg(0x2B, 0x00);
|
||||||
st7789v_WriteReg(0x2B, 0x01);
|
st7789v_WriteReg(0x2B, 0x01);
|
||||||
st7789v_WriteReg(0x2B, 0x3F);
|
st7789v_WriteReg(0x2B, 0x3F);
|
||||||
|
#endif
|
||||||
st7789v_height = ST7789V_LCD_PIXEL_HEIGHT;
|
st7789v_height = ST7789V_LCD_PIXEL_HEIGHT;
|
||||||
st7789v_width = ST7789V_LCD_PIXEL_WIDTH;
|
st7789v_width = ST7789V_LCD_PIXEL_WIDTH;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
/* Memory access control: MY = 0, MX = 1, MV = 1, ML = 0 */
|
/* Memory access control: MY = 0, MX = 1, MV = 1, ML = 0 */
|
||||||
|
#if 0
|
||||||
st7789v_WriteReg(0X36, 0x68);
|
st7789v_WriteReg(0X36, 0x68);
|
||||||
st7789v_WriteReg(0x2A, 0x00);
|
st7789v_WriteReg(0x2A, 0x00);
|
||||||
st7789v_WriteReg(0x2A, 0x00);
|
st7789v_WriteReg(0x2A, 0x00);
|
||||||
|
@ -476,11 +510,13 @@ void st7789_SetRotation(uint8_t rotation)
|
||||||
st7789v_WriteReg(0x2B, 0x00);
|
st7789v_WriteReg(0x2B, 0x00);
|
||||||
st7789v_WriteReg(0x2B, 0x00);
|
st7789v_WriteReg(0x2B, 0x00);
|
||||||
st7789v_WriteReg(0x2B, 0xEF);
|
st7789v_WriteReg(0x2B, 0xEF);
|
||||||
|
#endif
|
||||||
st7789v_height = ST7789V_LCD_PIXEL_WIDTH;
|
st7789v_height = ST7789V_LCD_PIXEL_WIDTH;
|
||||||
st7789v_width = ST7789V_LCD_PIXEL_HEIGHT;
|
st7789v_width = ST7789V_LCD_PIXEL_HEIGHT;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* Memory access control: MY = 1, MX = 1, MV = 0, ML = 0 */
|
/* Memory access control: MY = 1, MX = 1, MV = 0, ML = 0 */
|
||||||
|
#if 0
|
||||||
st7789v_WriteReg(0X36, 0xC8);
|
st7789v_WriteReg(0X36, 0xC8);
|
||||||
st7789v_WriteReg(0x2A, 0x00);
|
st7789v_WriteReg(0x2A, 0x00);
|
||||||
st7789v_WriteReg(0x2A, 0x00);
|
st7789v_WriteReg(0x2A, 0x00);
|
||||||
|
@ -490,11 +526,13 @@ void st7789_SetRotation(uint8_t rotation)
|
||||||
st7789v_WriteReg(0x2B, 0x00);
|
st7789v_WriteReg(0x2B, 0x00);
|
||||||
st7789v_WriteReg(0x2B, 0x01);
|
st7789v_WriteReg(0x2B, 0x01);
|
||||||
st7789v_WriteReg(0x2B, 0x3F);
|
st7789v_WriteReg(0x2B, 0x3F);
|
||||||
|
#endif
|
||||||
st7789v_height = ST7789V_LCD_PIXEL_HEIGHT;
|
st7789v_height = ST7789V_LCD_PIXEL_HEIGHT;
|
||||||
st7789v_width = ST7789V_LCD_PIXEL_WIDTH;
|
st7789v_width = ST7789V_LCD_PIXEL_WIDTH;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
/* Memory access control: MY = 1, MX = 0, MV = 1, ML = 0 */
|
/* Memory access control: MY = 1, MX = 0, MV = 1, ML = 0 */
|
||||||
|
#if 0
|
||||||
st7789v_WriteReg(0X36, 0xA8);
|
st7789v_WriteReg(0X36, 0xA8);
|
||||||
st7789v_WriteReg(0x2A, 0x00);
|
st7789v_WriteReg(0x2A, 0x00);
|
||||||
st7789v_WriteReg(0x2A, 0x00);
|
st7789v_WriteReg(0x2A, 0x00);
|
||||||
|
@ -504,6 +542,7 @@ void st7789_SetRotation(uint8_t rotation)
|
||||||
st7789v_WriteReg(0x2B, 0x00);
|
st7789v_WriteReg(0x2B, 0x00);
|
||||||
st7789v_WriteReg(0x2B, 0x00);
|
st7789v_WriteReg(0x2B, 0x00);
|
||||||
st7789v_WriteReg(0x2B, 0xEF);
|
st7789v_WriteReg(0x2B, 0xEF);
|
||||||
|
#endif
|
||||||
st7789v_height = ST7789V_LCD_PIXEL_WIDTH;
|
st7789v_height = ST7789V_LCD_PIXEL_WIDTH;
|
||||||
st7789v_width = ST7789V_LCD_PIXEL_HEIGHT;
|
st7789v_width = ST7789V_LCD_PIXEL_HEIGHT;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -77,12 +77,12 @@ uint16_t st7789v_ReadID(void);
|
||||||
void st7789v_DisplayOn(void);
|
void st7789v_DisplayOn(void);
|
||||||
void st7789v_DisplayOff(void);
|
void st7789v_DisplayOff(void);
|
||||||
void st7789v_SetCursor(uint16_t Xpos, uint16_t Ypos);
|
void st7789v_SetCursor(uint16_t Xpos, uint16_t Ypos);
|
||||||
void st7789_SetRotation(uint8_t rotation);
|
void st7789_SetRotation(uint8_t rotation);
|
||||||
void st7789v_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode);
|
void st7789v_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode);
|
||||||
void st7789v_WriteReg(uint8_t LCDReg, uint8_t LCDRegValue);
|
void st7789v_WriteReg(uint8_t LCDReg, uint8_t LCDRegValue);
|
||||||
uint8_t st7789v_ReadReg(uint8_t LCDReg);
|
uint8_t st7789v_ReadReg(uint8_t LCDReg);
|
||||||
void st7789v_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
|
void st7789v_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
|
||||||
void st7789v_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height, uint16_t RGBCode);
|
void st7789v_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height, uint16_t RGBCode);
|
||||||
void st7789v_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
|
void st7789v_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
|
||||||
void st7789v_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
|
void st7789v_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
|
||||||
|
|
||||||
|
|
|
@ -43,12 +43,13 @@ EndDependencies */
|
||||||
#include "spi.h"
|
#include "spi.h"
|
||||||
#include "stm32_hx8347d_lcd.h"
|
#include "stm32_hx8347d_lcd.h"
|
||||||
#include "Fonts/fonts.h"
|
#include "Fonts/fonts.h"
|
||||||
#include "Fonts/font24.c"
|
//#include "Fonts/font24.c"
|
||||||
#include "Fonts/font20.c"
|
//#include "Fonts/font20.c"
|
||||||
#include "Fonts/font16.c"
|
#include "Fonts/font16.c"
|
||||||
#include "Fonts/font12.c"
|
//#include "Fonts/font12.c"
|
||||||
#include "Fonts/font8.c"
|
//#include "Fonts/font8.c"
|
||||||
#include "sys_app.h"
|
#include "sys_app.h"
|
||||||
|
//#include "pic.h"
|
||||||
/** @addtogroup BSP
|
/** @addtogroup BSP
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
@ -146,7 +147,7 @@ uint8_t BSP_LCD_Init(void)
|
||||||
|
|
||||||
/* Default value for draw propriety */
|
/* Default value for draw propriety */
|
||||||
DrawProp.BackColor = 0xFFFF;
|
DrawProp.BackColor = 0xFFFF;
|
||||||
DrawProp.pFont = &Font24;
|
DrawProp.pFont = &Font16;
|
||||||
DrawProp.TextColor = 0x0000;
|
DrawProp.TextColor = 0x0000;
|
||||||
|
|
||||||
// lcd_drv = &hx8347d_drv;
|
// lcd_drv = &hx8347d_drv;
|
||||||
|
@ -263,7 +264,7 @@ sFONT *BSP_LCD_GetFont(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Clears the hole LCD.
|
* @brief Clears the Whole LCD.
|
||||||
* @param Color: Color of the background
|
* @param Color: Color of the background
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
|
@ -1183,7 +1184,7 @@ void LCD_IO_Init(void)
|
||||||
LCD_CS_GPIO_CLK_ENABLE();
|
LCD_CS_GPIO_CLK_ENABLE();
|
||||||
LCD_DC_GPIO_CLK_ENABLE();
|
LCD_DC_GPIO_CLK_ENABLE();
|
||||||
|
|
||||||
/* Configure LCD_CS_PIN pin: LCD Card CS pin */
|
/* Configure LCD_CS_PIN pin: LCD CS pin */
|
||||||
gpioinitstruct.Pin = LCD_CS_PIN;
|
gpioinitstruct.Pin = LCD_CS_PIN;
|
||||||
gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
|
gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
gpioinitstruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
gpioinitstruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||||
|
@ -1211,11 +1212,11 @@ void LCD_IO_WriteReg(uint8_t LCDReg)
|
||||||
LCD_CS_LOW();
|
LCD_CS_LOW();
|
||||||
|
|
||||||
/* Set LCD data/command line DC to Low */
|
/* Set LCD data/command line DC to Low */
|
||||||
LCD_DC_LOW();
|
//LCD_DC_LOW();
|
||||||
|
|
||||||
/* Send Command */
|
/* Send Command */
|
||||||
SPIx_Write(LCDReg);
|
SPIx_Write(LCDReg);
|
||||||
|
HAL_Delay(1);
|
||||||
/* Deselect : Chip Select high */
|
/* Deselect : Chip Select high */
|
||||||
LCD_CS_HIGH();
|
LCD_CS_HIGH();
|
||||||
}
|
}
|
||||||
|
@ -1230,7 +1231,7 @@ uint16_t LCD_IO_ReadData(uint16_t LCDReg){
|
||||||
LCD_CS_LOW();
|
LCD_CS_LOW();
|
||||||
|
|
||||||
/* Set LCD data/command line DC to Low */
|
/* Set LCD data/command line DC to Low */
|
||||||
LCD_DC_LOW();
|
//LCD_DC_LOW();
|
||||||
|
|
||||||
/* Send Command */
|
/* Send Command */
|
||||||
uint16_t data = SPIx_Read(LCDReg);
|
uint16_t data = SPIx_Read(LCDReg);
|
||||||
|
@ -1311,7 +1312,40 @@ void LCD_Delay(uint32_t Delay)
|
||||||
void BSP_LCD_Test(void)
|
void BSP_LCD_Test(void)
|
||||||
{
|
{
|
||||||
BSP_LCD_Clear(LCD_COLOR_WHITE);
|
BSP_LCD_Clear(LCD_COLOR_WHITE);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Clear with red...........\r\n");
|
||||||
|
BSP_LCD_Clear(LCD_COLOR_RED);
|
||||||
|
|
||||||
|
HAL_Delay(1000);
|
||||||
|
BSP_LCD_Clear(LCD_COLOR_RED);
|
||||||
|
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Clear with blue...........\r\n");
|
||||||
|
BSP_LCD_Clear(LCD_COLOR_BLUE);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
|
||||||
|
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Clear with YELLOW...........\r\n");
|
||||||
|
BSP_LCD_Clear(LCD_COLOR_YELLOW);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Clear with GREEN...........\r\n");
|
||||||
|
BSP_LCD_Clear(LCD_COLOR_GREEN);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Clear with WHITE...........\r\n");
|
||||||
|
BSP_LCD_Clear(LCD_COLOR_WHITE);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
|
||||||
|
BSP_LCD_FillRect(0,0,ST7789V_LCD_PIXEL_WIDTH,ST7789V_LCD_PIXEL_HEIGHT,LCD_COLOR_WHITE);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
BSP_LCD_FillRect(0,0,ST7789V_LCD_PIXEL_WIDTH,ST7789V_LCD_PIXEL_HEIGHT,LCD_COLOR_RED);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
|
||||||
|
BSP_LCD_FillRect(0,0,ST7789V_LCD_PIXEL_WIDTH,ST7789V_LCD_PIXEL_HEIGHT,LCD_COLOR_BROWN);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
BSP_LCD_FillRect(0,0,ST7789V_LCD_PIXEL_WIDTH,ST7789V_LCD_PIXEL_HEIGHT,LCD_COLOR_LIGHTGREEN);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
BSP_LCD_FillRect(0,0,ST7789V_LCD_PIXEL_WIDTH,ST7789V_LCD_PIXEL_HEIGHT,LCD_COLOR_LGRAYBLUE);
|
||||||
|
HAL_Delay(1000);
|
||||||
|
BSP_LCD_FillRect(0,0,ST7789V_LCD_PIXEL_WIDTH,ST7789V_LCD_PIXEL_HEIGHT,LCD_COLOR_BLUE);
|
||||||
|
|
||||||
|
#if 0
|
||||||
BSP_LCD_DisplayStringAt(10, 20, "Speed Test", LEFT_MODE, LCD_COLOR_RED);
|
BSP_LCD_DisplayStringAt(10, 20, "Speed Test", LEFT_MODE, LCD_COLOR_RED);
|
||||||
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Speed Test...........");
|
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Speed Test...........");
|
||||||
|
|
||||||
|
@ -1328,7 +1362,7 @@ void BSP_LCD_Test(void)
|
||||||
BSP_LCD_Clear(LCD_COLOR_LGRAYBLUE);
|
BSP_LCD_Clear(LCD_COLOR_LGRAYBLUE);
|
||||||
BSP_LCD_Clear(LCD_COLOR_WHITE);
|
BSP_LCD_Clear(LCD_COLOR_WHITE);
|
||||||
BSP_LCD_Clear(LCD_COLOR_BLACK);
|
BSP_LCD_Clear(LCD_COLOR_BLACK);
|
||||||
|
#endif
|
||||||
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Font and Hellow world Test...........");
|
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Font and Hellow world Test...........");
|
||||||
BSP_LCD_DisplayStringAt(10, 10, "Font test.", LEFT_MODE, LCD_COLOR_RED);
|
BSP_LCD_DisplayStringAt(10, 10, "Font test.", LEFT_MODE, LCD_COLOR_RED);
|
||||||
BSP_LCD_DisplayStringAt(10, 50, "Hello World!", LEFT_MODE, LCD_COLOR_RED);
|
BSP_LCD_DisplayStringAt(10, 50, "Hello World!", LEFT_MODE, LCD_COLOR_RED);
|
||||||
|
@ -1342,30 +1376,29 @@ void BSP_LCD_Test(void)
|
||||||
BSP_LCD_DrawRect(40, 40, 200, 200, LCD_COLOR_CYAN);
|
BSP_LCD_DrawRect(40, 40, 200, 200, LCD_COLOR_CYAN);
|
||||||
|
|
||||||
|
|
||||||
BSP_LCD_Clear(LCD_COLOR_CYAN);
|
BSP_LCD_Clear(LCD_COLOR_BLACK);
|
||||||
BSP_LCD_DisplayStringAt(10, 10, "Filled Rect.", LEFT_MODE, LCD_COLOR_YELLOW);
|
BSP_LCD_DisplayStringAt(10, 10, "Filled Rect.", LEFT_MODE, LCD_COLOR_YELLOW);
|
||||||
BSP_LCD_FillRect(40, 40, 160, 160, LCD_COLOR_CYAN);
|
BSP_LCD_FillRect(40, 40, 160, 160, LCD_COLOR_CYAN);
|
||||||
|
|
||||||
|
|
||||||
BSP_LCD_Clear(LCD_COLOR_CYAN);
|
BSP_LCD_Clear(LCD_COLOR_BLACK);
|
||||||
BSP_LCD_DisplayStringAt(10, 10, "Circle.", LEFT_MODE, LCD_COLOR_YELLOW);
|
BSP_LCD_DisplayStringAt(10, 10, "Circle.", LEFT_MODE, LCD_COLOR_YELLOW);
|
||||||
BSP_LCD_DrawCircle(120, 120, 60, LCD_COLOR_CYAN);
|
BSP_LCD_DrawCircle(120, 120, 60, LCD_COLOR_CYAN);
|
||||||
|
|
||||||
|
|
||||||
BSP_LCD_Clear(LCD_COLOR_CYAN);
|
BSP_LCD_Clear(LCD_COLOR_BLACK);
|
||||||
BSP_LCD_DisplayStringAt(10, 10, "Filled Cir.", LEFT_MODE, LCD_COLOR_YELLOW);
|
BSP_LCD_DisplayStringAt(10, 10, "Filled Cir.", LEFT_MODE, LCD_COLOR_YELLOW);
|
||||||
BSP_LCD_FillCircle(120, 120, 60, LCD_COLOR_CYAN);
|
BSP_LCD_FillCircle(120, 120, 60, LCD_COLOR_CYAN);
|
||||||
|
|
||||||
|
|
||||||
BSP_LCD_Clear(LCD_COLOR_CYAN);
|
|
||||||
BSP_LCD_DisplayStringAt(10, 10, "Triangle", LEFT_MODE, LCD_COLOR_YELLOW);
|
|
||||||
ST7789_DrawTriangle(30, 30, 30, 70, 60, 40, LCD_COLOR_CYAN);
|
|
||||||
|
|
||||||
|
BSP_LCD_Clear(LCD_COLOR_BLACK);
|
||||||
BSP_LCD_Clear(LCD_COLOR_CYAN);
|
|
||||||
BSP_LCD_DisplayStringAt(10, 10, "Filled Tri", LEFT_MODE, LCD_COLOR_YELLOW);
|
BSP_LCD_DisplayStringAt(10, 10, "Filled Tri", LEFT_MODE, LCD_COLOR_YELLOW);
|
||||||
BSP_LCD_FillTriangle(30, 30, 30, 70, 60, 40, LCD_COLOR_CYAN);
|
BSP_LCD_FillTriangle(30, 30, 30, 70, 60, 40, LCD_COLOR_CYAN);
|
||||||
|
|
||||||
|
BSP_LCD_Clear(LCD_COLOR_BLACK);
|
||||||
|
//BSP_LCD_DrawBitmap(0, 0, (char *)gImage_1);
|
||||||
|
HAL_Delay(3000);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ typedef enum
|
||||||
/**
|
/**
|
||||||
* @brief LCD default font
|
* @brief LCD default font
|
||||||
*/
|
*/
|
||||||
#define LCD_DEFAULT_FONT Font24
|
#define LCD_DEFAULT_FONT Font16
|
||||||
//======================================================================================================================////========================================================================================================================//
|
//======================================================================================================================////========================================================================================================================//
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
|
@ -140,16 +140,16 @@ typedef enum
|
||||||
#define LCD_SPIx SPI1
|
#define LCD_SPIx SPI1
|
||||||
#define LCD_SPIx_CLK_ENABLE() __HAL_RCC_SPI1_CLK_ENABLE()
|
#define LCD_SPIx_CLK_ENABLE() __HAL_RCC_SPI1_CLK_ENABLE()
|
||||||
|
|
||||||
#define LCD_SPIx_SCK_GPIO_PORT GPIOA
|
#define LCD_SPIx_SCK_GPIO_PORT MEMS_SPI_SCK_GPIO_Port
|
||||||
#define LCD_SPIx_SCK_PIN GPIO_PIN_5
|
#define LCD_SPIx_SCK_PIN MEMS_SPI_SCK_Pin
|
||||||
#define LCD_SPIx_SCK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
#define LCD_SPIx_SCK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
|
||||||
#define LCD_SPIx_SCK_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
#define LCD_SPIx_SCK_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
||||||
|
|
||||||
#define LCD_SPIx_MISO_MOSI_GPIO_PORT GPIOA
|
#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_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
|
||||||
#define LCD_SPIx_MISO_MOSI_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
#define LCD_SPIx_MISO_MOSI_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
||||||
#define LCD_SPIx_MISO_PIN GPIO_PIN_6
|
#define LCD_SPIx_MISO_PIN GPIO_PIN_6
|
||||||
#define LCD_SPIx_MOSI_PIN GPIO_PIN_7
|
#define LCD_SPIx_MOSI_PIN MEMS_SPI_MOSI_Pin
|
||||||
/* Maximum Timeout values for flags waiting loops. These timeouts are not based
|
/* Maximum Timeout values for flags waiting loops. These timeouts are not based
|
||||||
on accurate values, they just guarantee that the application will not remain
|
on accurate values, they just guarantee that the application will not remain
|
||||||
stuck if the SPI communication is corrupted.
|
stuck if the SPI communication is corrupted.
|
||||||
|
@ -160,27 +160,39 @@ typedef enum
|
||||||
/**
|
/**
|
||||||
* @brief LCD Control Lines management
|
* @brief LCD Control Lines management
|
||||||
*/
|
*/
|
||||||
|
#define LCD_RST_LOW() HAL_GPIO_WritePin(LCD_RST_GPIO_PORT,LCD_RST_PIN,GPIO_PIN_RESET)
|
||||||
|
#define LCD_RST_HIGH() HAL_GPIO_WritePin(LCD_RST_GPIO_PORT,LCD_RST_PIN,GPIO_PIN_SET)
|
||||||
#define LCD_CS_LOW() HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_RESET)
|
#define LCD_CS_LOW() HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_RESET)
|
||||||
#define LCD_CS_HIGH() HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_SET)
|
#define LCD_CS_HIGH() HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_SET)
|
||||||
#define LCD_DC_LOW() HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_RESET)
|
#define LCD_DC_LOW() HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_RESET)
|
||||||
#define LCD_DC_HIGH() HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_SET)
|
#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_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)
|
#define LCD_BL_OFF() HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_RESET)
|
||||||
/**
|
/**
|
||||||
* @brief LCD Control Interface pins (shield D10)
|
* @brief LCD Control Interface pins
|
||||||
*/
|
*/
|
||||||
#define LCD_CS_PIN LCD_CS_Pin
|
#define LCD_CS_PIN LCD_CS_Pin
|
||||||
#define LCD_CS_GPIO_PORT LCD_CS_GPIO_Port
|
#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_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
||||||
#define LCD_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
#define LCD_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief LCD Data/Command Interface pins
|
* @brief LCD Data/Command Interface pins
|
||||||
*/
|
*/
|
||||||
#define LCD_DC_PIN LCD_DC_Pin
|
#define LCD_DC_PIN LCD_DC_Pin
|
||||||
#define LCD_DC_GPIO_PORT LCD_DC_GPIO_Port
|
#define LCD_DC_GPIO_PORT LCD_DC_GPIO_Port
|
||||||
#define LCD_DC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
|
#define LCD_DC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
||||||
#define LCD_DC_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
|
#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()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=========================================================2=============================================================//
|
//=========================================================2=============================================================//
|
||||||
/** @defgroup STM32_HX8347D_LCD_Exported_Functions
|
/** @defgroup STM32_HX8347D_LCD_Exported_Functions
|
||||||
|
@ -194,7 +206,7 @@ uint16_t BSP_LCD_GetTextColor(void);
|
||||||
uint16_t BSP_LCD_GetBackColor(void);
|
uint16_t BSP_LCD_GetBackColor(void);
|
||||||
void BSP_LCD_SetTextColor(__IO uint16_t Color);
|
void BSP_LCD_SetTextColor(__IO uint16_t Color);
|
||||||
void BSP_LCD_SetBackColor(__IO uint16_t Color);
|
void BSP_LCD_SetBackColor(__IO uint16_t Color);
|
||||||
void BSP_LCD_SetRotation(uint8_t rotation);
|
void BSP_LCD_SetRotation(uint8_t rotation);
|
||||||
void BSP_LCD_SetFont(sFONT *fonts);
|
void BSP_LCD_SetFont(sFONT *fonts);
|
||||||
sFONT *BSP_LCD_GetFont(void);
|
sFONT *BSP_LCD_GetFont(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue