revised SPI and LCD control port

This commit is contained in:
Yunhorn 2023-08-03 11:21:51 +08:00
parent 746671f565
commit c196b9593d
7 changed files with 127 additions and 57 deletions

View File

@ -89,19 +89,21 @@ void Error_Handler(void);
#define VOLTAGE_DETECT_GPIO_Port GPIOA #define VOLTAGE_DETECT_GPIO_Port GPIOA
//SPI1 ST7789 //SPI1 ST7789
#define LCD_CS_Pin GPIO_PIN_4 //ST7789, Pin-7
#define LCD_CS_GPIO_Port GPIOA
#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
#define BLK_Pin GPIO_PIN_8 //ST7789, Pin-8
#define BLK_GPIO_Port GPIOB #define LCD_BLK_Pin GPIO_PIN_8 //ST7789, Pin-8
#define LCD_BLK_GPIO_Port GPIOB
#define LCD_CS_Pin GPIO_PIN_10 //ST7789, Pin-7
#define LCD_CS_GPIO_Port GPIOB
#define LCD_DC_Pin GPIO_PIN_5 //ST7789, Pin-6
#define LCD_DC_GPIO_Port GPIOB
#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
#define LCD_DC_Pin GPIO_PIN_5 //ST7789, Pin-6
#define LCD_DC_GPIO_Port GPIOB
#define KEY1_Pin GPIO_PIN_0 #define KEY1_Pin GPIO_PIN_0
#define KEY1_GPIO_Port GPIOA #define KEY1_GPIO_Port GPIOA

View File

@ -44,13 +44,14 @@ void MX_DMA_Init(void)
__HAL_RCC_DMA1_CLK_ENABLE(); __HAL_RCC_DMA1_CLK_ENABLE();
/* DMA interrupt init */ /* DMA interrupt init */
#if 1
/* DMA1_Channel2_IRQn interrupt configuration */ /* DMA1_Channel2_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0); HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn); HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn);
/* DMA1_Channel3_IRQn interrupt configuration */ /* DMA1_Channel3_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0); HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn); HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
#endif
/* DMA1_Channel5_IRQn interrupt configuration */ /* DMA1_Channel5_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 2, 0); HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 2, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);

View File

@ -54,10 +54,15 @@ void MX_GPIO_Init(void)
|LED3_Pin, GPIO_PIN_RESET); |LED3_Pin, GPIO_PIN_RESET);
/*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_BLK_GPIO_Port, LCD_BLK_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_RESET);
/*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);
/*Configure GPIO pins : PBPin PBPin PBPin */ /*Configure GPIO pins : PBPin PBPin PBPin */
GPIO_InitStruct.Pin = LED1_Pin|LED2_Pin|LED3_Pin; GPIO_InitStruct.Pin = LED1_Pin|LED2_Pin|LED3_Pin;
@ -86,14 +91,14 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(BUT3_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(BUT3_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PAPin PAPin PAPin */ /*Configure GPIO pins : PAPin PAPin PAPin */
GPIO_InitStruct.Pin = LCD_CS_Pin|LCD_RES_Pin|W25Q_CS_Pin; GPIO_InitStruct.Pin = LCD_CS_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(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(LCD_CS_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PBPin PBPin PBPin */ /*Configure GPIO pins : PBPin PBPin PBPin */
GPIO_InitStruct.Pin = LCD_TE_Pin|LCD_DC_Pin|LED_Pin; GPIO_InitStruct.Pin = LCD_RES_Pin|LCD_BLK_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;

View File

@ -81,7 +81,7 @@ MENU my_menu={
{"screenshot","saving ","success ","fail "}, {"screenshot","saving ","success ","fail "},
0 0
}; };
uint8_t key1_press,key2_press,button_press; uint8_t key1_press,key2_press,button_press=1;
//menu1 bin_size or resize //menu1 bin_size or resize
//menu2 color_method //menu2 color_method
//menu3 screenshot //menu3 screenshot
@ -119,14 +119,27 @@ int main(void)
MX_LoRaWAN_Init(); MX_LoRaWAN_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
//MX_ADC_Init(); //MX_ADC_Init();
MX_DMA_Init();
MX_I2C_Init();
MX_SPI_Init(); MX_SPI_Init();
MX_I2C_Init();
MX_DMA_Init();
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Start LCD test..........."); APP_LOG(TS_OFF,VLEVEL_L,"\r\n Start LCD test...........");
//HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); //HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
//ST7789_Test();
ST7789_Init();
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Set Black Light...on....");
ST7789_SetBackLight(1);
HAL_Delay(500);
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Set Black Light... off....");
ST7789_SetBackLight(0);
HAL_Delay(500);
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Set Black Light...on....");
ST7789_SetBackLight(1);
// HAL_Delay(500);
// ST7789_Test();
APP_LOG(TS_OFF,VLEVEL_L,"\r\n END LCD test..........."); APP_LOG(TS_OFF,VLEVEL_L,"\r\n END LCD test...........");
@ -139,7 +152,7 @@ int main(void)
mlx90640_init(FPS2HZ,&mlx90640); mlx90640_init(FPS2HZ,&mlx90640);
HAL_Delay(500); HAL_Delay(500);
mlx90640_get_temp_mat(&mlx90640,mlx90640To); mlx90640_get_temp_mat(&mlx90640,mlx90640To);
ST7789_SetBackLight(50); ST7789_SetBackLight(0);
draw_spectrum(img_method_arr[my_menu.chose_color_method_index]); draw_spectrum(img_method_arr[my_menu.chose_color_method_index]);
@ -149,7 +162,6 @@ int main(void)
/* USER CODE BEGIN 3 */ /* USER CODE BEGIN 3 */
APP_LOG(TS_OFF,VLEVEL_L,"\r\nL menu selected:%d,%d,%d\n",chose_menu_index,key1_press,key2_press); APP_LOG(TS_OFF,VLEVEL_L,"\r\nL menu selected:%d,%d,%d\n",chose_menu_index,key1_press,key2_press);
APP_LOG(TS_OFF,VLEVEL_M,"\r\nM menu selected:%d,%d,%d\n",chose_menu_index,key1_press,key2_press);
if(key1_press==1) if(key1_press==1)
chose_menu_index--; chose_menu_index--;
@ -160,6 +172,8 @@ int main(void)
if(chose_menu_index>3) if(chose_menu_index>3)
chose_menu_index=1; chose_menu_index=1;
#if 1 #if 1
APP_LOG(TS_OFF,VLEVEL_L,"\r\nGet Raw data \r\n");
mlx90640_get_temp_mat(&mlx90640,mlx90640To); mlx90640_get_temp_mat(&mlx90640,mlx90640To);
char buf[128]; char buf[128];
APP_LOG(TS_OFF,VLEVEL_L,"\r\n"); APP_LOG(TS_OFF,VLEVEL_L,"\r\n");
@ -177,6 +191,8 @@ int main(void)
{//温度异常重新获取 {//温度异常重新获取
mlx90640_get_temp_mat(&mlx90640,mlx90640To); mlx90640_get_temp_mat(&mlx90640,mlx90640To);
} }
sprintf(buf,"\r\nMax=%.2f, Min=%.2f, Center=%.2f\r\n",(float)max_temp, (float)min_temp, (float)mlx90640To[768/2]);
APP_LOG(TS_OFF,VLEVEL_L,"%s", buf);
APP_LOG(TS_OFF,VLEVEL_L,"\r\n"); APP_LOG(TS_OFF,VLEVEL_L,"\r\n");
for (int i=0; i< 24; i++) { for (int i=0; i< 24; i++) {
@ -190,6 +206,7 @@ int main(void)
} }
center_temp=mlx90640To[768/2]; center_temp=mlx90640To[768/2];
#endif #endif
#if 0
if(button_press) if(button_press)
my_menu.screenshot_index=1; my_menu.screenshot_index=1;
ST7789_WriteString(0,0,my_menu.voltage_info,Font_7x10,WHITE,BLACK); ST7789_WriteString(0,0,my_menu.voltage_info,Font_7x10,WHITE,BLACK);
@ -231,9 +248,10 @@ int main(void)
else else
Besize_draw(bmp8,img_method_arr[my_menu.chose_color_method_index],notsavefile); Besize_draw(bmp8,img_method_arr[my_menu.chose_color_method_index],notsavefile);
} }
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5); chose_menu_index ++;
//HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
// UART_printf(&huart1,"%d,%d,%d\n",chose_menu_index,key1_press,key2_press); // UART_printf(&huart1,"%d,%d,%d\n",chose_menu_index,key1_press,key2_press);
#endif
} }
/* USER CODE END 2 */ /* USER CODE END 2 */

View File

@ -41,18 +41,18 @@ 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_1LINE;//SPI_DIRECTION_2LINES; hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;//SPI_POLARITY_LOW; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; //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; //7; hspi1.Init.CRCPolynomial = 7; //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)
{ {
Error_Handler(); Error_Handler();
@ -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_MOSI_Pin|MEMS_CS_N_Pin|MEMS_SPI_MISO_Pin; 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.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 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;
@ -152,7 +152,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
HAL_NVIC_SetPriority(SPI1_IRQn, 0, 0); HAL_NVIC_SetPriority(SPI1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(SPI1_IRQn); HAL_NVIC_EnableIRQ(SPI1_IRQn);
/* USER CODE BEGIN SPI1_MspInit 1 */ /* USER CODE BEGIN SPI1_MspInit 1 */
#endif
/* USER CODE END SPI1_MspInit 1 */ /* USER CODE END SPI1_MspInit 1 */
} }
} }
@ -174,14 +174,14 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
* PA6 SPI1_MISO * PA6 SPI1_MISO
* PA7 SPI1_MOSI * PA7 SPI1_MOSI
*/ */
HAL_GPIO_DeInit(GPIOA, MEMS_SPI_MOSI_Pin|MEMS_CS_N_Pin|MEMS_SPI_MISO_Pin); HAL_GPIO_DeInit(MEMS_SPI_MOSI_GPIO_Port, MEMS_SPI_MOSI_Pin|MEMS_SPI_MISO_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
/* 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);
#endif
/* SPI1 interrupt Deinit */ /* SPI1 interrupt Deinit */
HAL_NVIC_DisableIRQ(SPI1_IRQn); HAL_NVIC_DisableIRQ(SPI1_IRQn);
/* USER CODE BEGIN SPI1_MspDeInit 1 */ /* USER CODE BEGIN SPI1_MspDeInit 1 */

View File

@ -624,6 +624,12 @@ void ST7789_DrawFilledCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
void ST7789_SetBackLight(uint8_t blk) void ST7789_SetBackLight(uint8_t blk)
{ {
//BLK_TIM=blk; //BLK_TIM=blk;
//ST7789_BLK_Clr();
if (blk) {
ST7789_BLK_Set();
} else {
ST7789_BLK_Clr();
}
} }
/** /**
* @brief Open/Close tearing effect line * @brief Open/Close tearing effect line
@ -645,11 +651,11 @@ void ST7789_TearEffect(uint8_t tear)
*/ */
void ST7789_Test(void) void ST7789_Test(void)
{ {
ST7789_Fill_Color(BLACK); ST7789_Fill_Color(BLUE);
HAL_Delay(1000); HAL_Delay(2000);
ST7789_WriteString(10, 20, "Speed Test", Font_11x18, RED, BLACK); ST7789_WriteString(10, 20, "Speed Test", Font_11x18, RED, BLACK);
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Speed Test..........."); APP_LOG(TS_OFF,VLEVEL_L,"\r\n Speed Test...........");
HAL_Delay(1000); HAL_Delay(100);
ST7789_Fill_Color(CYAN); ST7789_Fill_Color(CYAN);
ST7789_Fill_Color(RED); ST7789_Fill_Color(RED);
ST7789_Fill_Color(BLUE); ST7789_Fill_Color(BLUE);
@ -669,38 +675,38 @@ void ST7789_Test(void)
ST7789_WriteString(10, 50, "Hello World!", Font_7x10, RED, BLACK); ST7789_WriteString(10, 50, "Hello World!", Font_7x10, RED, BLACK);
ST7789_WriteString(10, 75, "Hello World!", Font_11x18, YELLOW, BLACK); ST7789_WriteString(10, 75, "Hello World!", Font_11x18, YELLOW, BLACK);
ST7789_WriteString(10, 100, "Hello World!", Font_16x26, MAGENTA, BLACK); ST7789_WriteString(10, 100, "Hello World!", Font_16x26, MAGENTA, BLACK);
HAL_Delay(1000); HAL_Delay(100);
APP_LOG(TS_OFF,VLEVEL_L,"\r\n Rect, circle Triangle test..........."); APP_LOG(TS_OFF,VLEVEL_L,"\r\n Rect, circle Triangle test...........");
ST7789_Fill_Color(BLACK); ST7789_Fill_Color(BLACK);
ST7789_WriteString(10, 10, "Rect./Line.", Font_11x18, YELLOW, BLACK); ST7789_WriteString(10, 10, "Rect./Line.", Font_11x18, YELLOW, BLACK);
ST7789_DrawRectangle(40, 40, 200, 200, WHITE); ST7789_DrawRectangle(40, 40, 200, 200, WHITE);
HAL_Delay(1000); HAL_Delay(100);
ST7789_Fill_Color(BLACK); ST7789_Fill_Color(BLACK);
ST7789_WriteString(10, 10, "Filled Rect.", Font_11x18, YELLOW, BLACK); ST7789_WriteString(10, 10, "Filled Rect.", Font_11x18, YELLOW, BLACK);
ST7789_DrawFilledRectangle(40, 40, 160, 160, WHITE); ST7789_DrawFilledRectangle(40, 40, 160, 160, WHITE);
HAL_Delay(1000); HAL_Delay(100);
ST7789_Fill_Color(BLACK); ST7789_Fill_Color(BLACK);
ST7789_WriteString(10, 10, "Circle.", Font_11x18, YELLOW, BLACK); ST7789_WriteString(10, 10, "Circle.", Font_11x18, YELLOW, BLACK);
ST7789_DrawCircle(120, 120, 60, WHITE); ST7789_DrawCircle(120, 120, 60, WHITE);
HAL_Delay(1000); HAL_Delay(100);
ST7789_Fill_Color(BLACK); ST7789_Fill_Color(BLACK);
ST7789_WriteString(10, 10, "Filled Cir.", Font_11x18, YELLOW, BLACK); ST7789_WriteString(10, 10, "Filled Cir.", Font_11x18, YELLOW, BLACK);
ST7789_DrawFilledCircle(120, 120, 60, WHITE); ST7789_DrawFilledCircle(120, 120, 60, WHITE);
HAL_Delay(1000); HAL_Delay(100);
ST7789_Fill_Color(BLACK); ST7789_Fill_Color(BLACK);
ST7789_WriteString(10, 10, "Triangle", Font_11x18, YELLOW, BLACK); ST7789_WriteString(10, 10, "Triangle", Font_11x18, YELLOW, BLACK);
ST7789_DrawTriangle(30, 30, 30, 70, 60, 40, WHITE); ST7789_DrawTriangle(30, 30, 30, 70, 60, 40, WHITE);
HAL_Delay(1000); HAL_Delay(100);
ST7789_Fill_Color(BLACK); ST7789_Fill_Color(BLACK);
ST7789_WriteString(10, 10, "Filled Tri", Font_11x18, YELLOW, BLACK); ST7789_WriteString(10, 10, "Filled Tri", Font_11x18, YELLOW, BLACK);
ST7789_DrawFilledTriangle(30, 30, 30, 70, 60, 40, WHITE); ST7789_DrawFilledTriangle(30, 30, 30, 70, 60, 40, WHITE);
HAL_Delay(1000); HAL_Delay(100);
/* /*

View File

@ -15,16 +15,26 @@
*/ */
/* Define the pins tp connect */ /* Define the pins tp connect */
#define ST7789_RST_PORT GPIOB //#define ST7789_RST_PORT GPIOB
#define ST7789_RST_PIN GPIO_PIN_3 //#define ST7789_RST_PIN GPIO_PIN_3
#define ST7789_DC_PORT GPIOB //#define ST7789_DC_PORT GPIOB
#define ST7789_DC_PIN GPIO_PIN_5 //#define ST7789_DC_PIN GPIO_PIN_5
//#define ST7789_CS_PORT GPIOA //#define ST7789_CS_PORT GPIOA
//#define ST7789_CS_PIN GPIO_PIN_3 //#define ST7789_CS_PIN GPIO_PIN_3
#define ST7789_CS_PORT MEMS_CS_N_GPIO_Port #define ST7789_RST_PORT LCD_RES_GPIO_Port
#define ST7789_CS_PIN MEMS_CS_N_Pin #define ST7789_RST_PIN LCD_RES_Pin
#define ST7789_DC_PORT LCD_DC_GPIO_Port
#define ST7789_DC_PIN LCD_DC_Pin
#define ST7789_BLK_PORT LCD_BLK_GPIO_Port
#define ST7789_BLK_PIN LCD_BLK_Pin
#define ST7789_CS_PORT LCD_CS_GPIO_Port
#define ST7789_CS_PIN LCD_CS_Pin
/***** Use if need backlight control ***** /***** Use if need backlight control *****
@ -47,11 +57,12 @@
/* Choose a type you are using */ /* Choose a type you are using */
//#define USING_135X240 //#define USING_135X240
//#define USING_240X240 //#define USING_240X240
#define USING_320X240 //#define USING_320X240
#define USING_280X240
/* Choose a display rotation you want to use: (0-3) */ /* Choose a display rotation you want to use: (0-3) */
//#define ST7789_ROTATION 0 #define ST7789_ROTATION 0
#define ST7789_ROTATION 1 //#define ST7789_ROTATION 1
//#define ST7789_ROTATION 2 // use Normally on 240x240 //#define ST7789_ROTATION 2 // use Normally on 240x240
//#define ST7789_ROTATION 3 //#define ST7789_ROTATION 3
@ -125,6 +136,26 @@
#define Y_SHIFT 0 #define Y_SHIFT 0
#endif #endif
#endif #endif
#ifdef USING_280X240
#define ST7789_WIDTH 280
#define ST7789_HEIGHT 240
#if ST7789_ROTATION == 0
#define X_SHIFT 0
#define Y_SHIFT 0
#elif ST7789_ROTATION == 1
#define X_SHIFT 0
#define Y_SHIFT 0
#elif ST7789_ROTATION == 2
#define X_SHIFT 0
#define Y_SHIFT 0
#elif ST7789_ROTATION == 3
#define X_SHIFT 0
#define Y_SHIFT 0
#endif
#endif
/** /**
*Color of pen *Color of pen
*If you want to use another color, you can choose one in RGB565 format. *If you want to use another color, you can choose one in RGB565 format.
@ -216,6 +247,9 @@
#define ST7789_DC_Clr() HAL_GPIO_WritePin(ST7789_DC_PORT, ST7789_DC_PIN, GPIO_PIN_RESET) #define ST7789_DC_Clr() HAL_GPIO_WritePin(ST7789_DC_PORT, ST7789_DC_PIN, GPIO_PIN_RESET)
#define ST7789_DC_Set() HAL_GPIO_WritePin(ST7789_DC_PORT, ST7789_DC_PIN, GPIO_PIN_SET) #define ST7789_DC_Set() HAL_GPIO_WritePin(ST7789_DC_PORT, ST7789_DC_PIN, GPIO_PIN_SET)
#define ST7789_BLK_Clr() HAL_GPIO_WritePin(ST7789_BLK_PORT,ST7789_BLK_PIN,GPIO_PIN_RESET)
#define ST7789_BLK_Set() HAL_GPIO_WritePin(ST7789_BLK_PORT,ST7789_BLK_PIN,GPIO_PIN_SET)
#ifdef ST7789_USE_CS #ifdef ST7789_USE_CS
#define ST7789_Select() HAL_GPIO_WritePin(ST7789_CS_PORT, ST7789_CS_PIN, GPIO_PIN_RESET) #define ST7789_Select() HAL_GPIO_WritePin(ST7789_CS_PORT, ST7789_CS_PIN, GPIO_PIN_RESET)
#define ST7789_UnSelect() HAL_GPIO_WritePin(ST7789_CS_PORT, ST7789_CS_PIN, GPIO_PIN_SET) #define ST7789_UnSelect() HAL_GPIO_WritePin(ST7789_CS_PORT, ST7789_CS_PIN, GPIO_PIN_SET)
@ -262,17 +296,21 @@ void ST7789_Test(void);
#if !defined(USING_240X240) #if !defined(USING_240X240)
#if !defined(USING_135X240) #if !defined(USING_135X240)
#if !defined(USING_320X240) #if !defined(USING_320X240)
#if !defined(USING_280X240)
#error You should at least choose one display resolution! #error You should at least choose one display resolution!
#endif #endif
#endif #endif
#endif
#endif #endif
#if !defined(USING_135X240) #if !defined(USING_135X240)
#if !defined(USING_240X240) #if !defined(USING_240X240)
#if !defined(USING_320X240) #if !defined(USING_320X240)
#if !defined(USING_280X240)
#error You should at least choose one display resolution! #error You should at least choose one display resolution!
#endif #endif
#endif #endif
#endif
#endif #endif