diff --git a/Core/Inc/main.h b/Core/Inc/main.h index e41773a..95f9db5 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -85,33 +85,33 @@ void Error_Handler(void); #define USARTx_TX_GPIO_Port GPIOA /* USER CODE BEGIN Private defines */ -#define VOLTAGE_DETECT_Pin GPIO_PIN_2 +#define VOLTAGE_DETECT_Pin GPIO_PIN_15 #define VOLTAGE_DETECT_GPIO_Port GPIOA //SPI1 ST7789 #define LCD_CS_Pin GPIO_PIN_4 //ST7789, Pin-7 #define LCD_CS_GPIO_Port GPIOA -#define LCD_RES_Pin GPIO_PIN_4 //ST7789, Pin-5 -#define LCD_RES_GPIO_Port GPIOA -#define BLK_Pin GPIO_PIN_6 //ST7789, Pin-8 -#define BLK_GPIO_Port GPIOA +#define LCD_RES_Pin GPIO_PIN_3 //ST7789, Pin-5 +#define LCD_RES_GPIO_Port GPIOB +#define BLK_Pin GPIO_PIN_8 //ST7789, Pin-8 +#define BLK_GPIO_Port GPIOB -#define LCD_TE_Pin GPIO_PIN_0 +#define LCD_TE_Pin GPIO_PIN_13 #define LCD_TE_GPIO_Port GPIOB -#define LCD_DC_Pin GPIO_PIN_1 //ST7789, Pin-6 +#define LCD_DC_Pin GPIO_PIN_5 //ST7789, Pin-6 #define LCD_DC_GPIO_Port GPIOB -#define KEY1_Pin GPIO_PIN_12 -#define KEY1_GPIO_Port GPIOB -#define KEY2_Pin GPIO_PIN_13 -#define KEY2_GPIO_Port GPIOB +#define KEY1_Pin GPIO_PIN_0 +#define KEY1_GPIO_Port GPIOA +#define KEY2_Pin GPIO_PIN_1 +#define KEY2_GPIO_Port GPIOA -#define LED_Pin GPIO_PIN_5 -#define LED_GPIO_Port GPIOB +#define LED_Pin GPIO_PIN_8 +#define LED_GPIO_Port GPIOA -#define W25Q_CS_Pin GPIO_PIN_8 +#define W25Q_CS_Pin GPIO_PIN_9 #define W25Q_CS_GPIO_Port GPIOA /* USER CODE END Private defines */ diff --git a/Core/Inc/spi.h b/Core/Inc/spi.h index 0d26ede..c74c7df 100644 --- a/Core/Inc/spi.h +++ b/Core/Inc/spi.h @@ -37,8 +37,8 @@ extern "C" { #define MEMS_SPI_MISO_GPIO_Port GPIOA //GPIOA #define MEMS_SPI_MOSI_Pin GPIO_PIN_7 //GPIO_PIN_12 #define MEMS_SPI_MOSI_GPIO_Port GPIOA //GPIOA -#define MEMS_CS_N_Pin GPIO_PIN_4 //GPIO_PIN_15 -#define MEMS_CS_N_GPIO_Port GPIOA //GPIOA +#define MEMS_CS_N_Pin GPIO_PIN_0 //GPIO_PIN_15 +#define MEMS_CS_N_GPIO_Port GPIOB //GPIOA #define MEMS_SENSOR_INTERRUPT_Pin GPIO_PIN_8 #define MEMS_SENSOR_INTERRUPT_GPIO_Port GPIOA #define MEMS_SENSOR_INTERRUPT_EXTI_IRQn EXTI9_5_IRQn diff --git a/Core/Src/i2c.c b/Core/Src/i2c.c index 8c43cb0..c51918a 100644 --- a/Core/Src/i2c.c +++ b/Core/Src/i2c.c @@ -32,7 +32,7 @@ void MX_I2C_Init(void) { hi2c2.Instance = I2C2; - hi2c2.Init.Timing = 0x2010091A; //0x2010091A = 400K Fast Mode, 0x20303E5D, 100K Standard mode, 0x20000209 Fast Mode Plus, 1Mbps + hi2c2.Init.Timing = 0x20000209; //0x2010091A = 400K Fast Mode, 0x20303E5D, 100K Standard mode, 0x20000209 Fast Mode Plus, 1Mbps hi2c2.Init.OwnAddress1 = 0; hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; diff --git a/Core/Src/main.c b/Core/Src/main.c index 0c25876..cc61c32 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -118,20 +118,25 @@ int main(void) MX_GPIO_Init(); MX_LoRaWAN_Init(); /* USER CODE BEGIN 2 */ - MX_ADC_Init(); + //MX_ADC_Init(); MX_DMA_Init(); MX_I2C_Init(); MX_SPI_Init(); + APP_LOG(TS_OFF,VLEVEL_L,"\r\n Start LCD test..........."); //HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); - ST7789_SetBackLight(0); + //ST7789_Test(); + + APP_LOG(TS_OFF,VLEVEL_L,"\r\n END LCD test..........."); + + ST7789_SetBackLight(1); //bmp_header_init(&bmpinfo); //HAL_TIM_Base_Start_IT(&htim4); //HAL_TIM_Encoder_Start(&htim2,TIM_CHANNEL_ALL); - HAL_ADC_Start_DMA(&hadc,voltage_adc,1); + //HAL_ADC_Start_DMA(&hadc,voltage_adc,1); ST7789_Init(); - mlx90640_init(FPS8HZ,&mlx90640); + mlx90640_init(FPS2HZ,&mlx90640); HAL_Delay(500); mlx90640_get_temp_mat(&mlx90640,mlx90640To); ST7789_SetBackLight(50); @@ -143,7 +148,9 @@ int main(void) /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ - APP_LOG(TS_OFF,VLEVEL_L,"%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) chose_menu_index--; if(key2_press) @@ -152,12 +159,37 @@ int main(void) chose_menu_index=3; if(chose_menu_index>3) chose_menu_index=1; +#if 1 mlx90640_get_temp_mat(&mlx90640,mlx90640To); + char buf[128]; + APP_LOG(TS_OFF,VLEVEL_L,"\r\n"); + for (int i=0; i< 24; i++) { + APP_LOG(TS_OFF,VLEVEL_L,"\r\n"); + for (int j=0; j < 32; j++) { + sprintf(buf,"%.f", (float)(mlx90640To[j*i])); + APP_LOG(TS_OFF,VLEVEL_L,"%s ", buf); + + } + HAL_Delay(1); + } + while(temp_to_bmp8(bmp8,mlx90640To,768,&max_temp,&min_temp,1)) {//温度异常重新获取 mlx90640_get_temp_mat(&mlx90640,mlx90640To); } + + APP_LOG(TS_OFF,VLEVEL_L,"\r\n"); + for (int i=0; i< 24; i++) { + APP_LOG(TS_OFF,VLEVEL_L,"\r\n"); + for (int j=0; j < 32; j++) { + sprintf(buf,"%.f", (float)(mlx90640To[j*i])); + APP_LOG(TS_OFF,VLEVEL_L,"%s ", buf); + + } + HAL_Delay(1); + } center_temp=mlx90640To[768/2]; +#endif if(button_press) my_menu.screenshot_index=1; ST7789_WriteString(0,0,my_menu.voltage_info,Font_7x10,WHITE,BLACK); diff --git a/Core/Src/spi.c b/Core/Src/spi.c index d61087a..d9b177d 100644 --- a/Core/Src/spi.c +++ b/Core/Src/spi.c @@ -41,18 +41,18 @@ void MX_SPI_Init(void) /* USER CODE END SPI1_Init 1 */ hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; - hspi1.Init.Direction = SPI_DIRECTION_2LINES; + hspi1.Init.Direction = SPI_DIRECTION_1LINE;//SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; - hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; + hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;//SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; - hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64; + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; //SPI_BAUDRATEPRESCALER_64; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; - hspi1.Init.CRCPolynomial = 7; - hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE; - hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE; + hspi1.Init.CRCPolynomial = 10; //7; +// hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE; +// hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE; if (HAL_SPI_Init(&hspi1) != HAL_OK) { Error_Handler(); @@ -89,12 +89,12 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle) * PA6 SPI1_MISO * PA7 SPI1_MOSI */ - GPIO_InitStruct.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.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + HAL_GPIO_Init(MEMS_SPI_MOSI_GPIO_Port, &GPIO_InitStruct); GPIO_InitStruct.Pin = MEMS_SPI_SCK_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; diff --git a/ST7789/st7789.c b/ST7789/st7789.c index 442b4ec..f37a66b 100644 --- a/ST7789/st7789.c +++ b/ST7789/st7789.c @@ -1,5 +1,5 @@ #include "st7789.h" - +#include "sys_app.h" /** * @brief Write command to ST7789 controller * @param cmd -> command to write @@ -113,9 +113,9 @@ void ST7789_Init(void) - //HAL_Delay(25); + HAL_Delay(25); ST7789_RST_Clr(); - //HAL_Delay(25); + HAL_Delay(25); ST7789_RST_Set(); HAL_Delay(10); @@ -648,6 +648,7 @@ void ST7789_Test(void) ST7789_Fill_Color(BLACK); HAL_Delay(1000); ST7789_WriteString(10, 20, "Speed Test", Font_11x18, RED, BLACK); + APP_LOG(TS_OFF,VLEVEL_L,"\r\n Speed Test..........."); HAL_Delay(1000); ST7789_Fill_Color(CYAN); ST7789_Fill_Color(RED); @@ -663,13 +664,14 @@ void ST7789_Test(void) ST7789_Fill_Color(WHITE); ST7789_Fill_Color(BLACK); HAL_Delay(500); - + APP_LOG(TS_OFF,VLEVEL_L,"\r\n Font and Hellow world Test..........."); ST7789_WriteString(10, 10, "Font test.", Font_16x26, GBLUE, BLACK); ST7789_WriteString(10, 50, "Hello World!", Font_7x10, RED, BLACK); ST7789_WriteString(10, 75, "Hello World!", Font_11x18, YELLOW, BLACK); ST7789_WriteString(10, 100, "Hello World!", Font_16x26, MAGENTA, BLACK); HAL_Delay(1000); + APP_LOG(TS_OFF,VLEVEL_L,"\r\n Rect, circle Triangle test..........."); ST7789_Fill_Color(BLACK); ST7789_WriteString(10, 10, "Rect./Line.", Font_11x18, YELLOW, BLACK); ST7789_DrawRectangle(40, 40, 200, 200, WHITE); diff --git a/ST7789/st7789.h b/ST7789/st7789.h index 03c97d0..855f4b0 100644 --- a/ST7789/st7789.h +++ b/ST7789/st7789.h @@ -15,12 +15,16 @@ */ /* Define the pins tp connect */ -#define ST7789_RST_PORT GPIOA -#define ST7789_RST_PIN GPIO_PIN_4 +#define ST7789_RST_PORT GPIOB +#define ST7789_RST_PIN GPIO_PIN_3 #define ST7789_DC_PORT GPIOB -#define ST7789_DC_PIN GPIO_PIN_1 -#define ST7789_CS_PORT GPIOA -#define ST7789_CS_PIN GPIO_PIN_3 +#define ST7789_DC_PIN GPIO_PIN_5 + +//#define ST7789_CS_PORT GPIOA +//#define ST7789_CS_PIN GPIO_PIN_3 + +#define ST7789_CS_PORT MEMS_CS_N_GPIO_Port +#define ST7789_CS_PIN MEMS_CS_N_Pin /***** Use if need backlight control ***** diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject index 54f84e2..38f9a09 100644 --- a/STM32CubeIDE/.cproject +++ b/STM32CubeIDE/.cproject @@ -112,6 +112,7 @@