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 @@
+
@@ -206,4 +207,5 @@
+
\ No newline at end of file
diff --git a/STM32CubeIDE/CMakeLists.txt b/STM32CubeIDE/CMakeLists.txt
deleted file mode 100644
index 6ab84e4..0000000
--- a/STM32CubeIDE/CMakeLists.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-#此文件从模板自动生成! 请勿更改!
-set(CMAKE_SYSTEM_NAME Generic)
-set(CMAKE_SYSTEM_VERSION 1)
-cmake_minimum_required(VERSION 3.20)
-
-# specify cross compilers and tools
-set(CMAKE_C_COMPILER arm-none-eabi-gcc)
-set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
-set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)
-set(CMAKE_AR arm-none-eabi-ar)
-set(CMAKE_OBJCOPY arm-none-eabi-objcopy)
-set(CMAKE_OBJDUMP arm-none-eabi-objdump)
-set(SIZE arm-none-eabi-size)
-set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
-
-# project settings
-project(MLX90640 C CXX ASM)
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_C_STANDARD 11)
-
-#Uncomment for hardware floating point
-add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
-#add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
-#add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
-
-#Uncomment for software floating point
-add_compile_options(-mfloat-abi=soft)
-
-add_compile_options(-mcpu=cortex-m4 -mthumb -mthumb-interwork)
-add_compile_options(-ffunction-sections -fdata-sections -fno-common -fmessage-length=0)
-
-# uncomment to mitigate c++17 absolute addresses warnings
-#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-register")
-
-if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
- message(STATUS "Maximum optimization for speed")
- add_compile_options(-Ofast)
-elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
- message(STATUS "Maximum optimization for speed, debug info included")
- add_compile_options(-Ofast -g)
-elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel")
- message(STATUS "Maximum optimization for size")
- add_compile_options(-Os)
-else ()
- message(STATUS "Minimal optimization, debug info included")
- add_compile_options(-Og -g)
-endif ()
-
-include_directories(Core/Inc Drivers/STM32WLxx_HAL_Driver/Inc Drivers/STM32WLxx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32WLxx/Include Drivers/CMSIS/Include FATFS/Target FATFS/App USB_DEVICE/App USB_DEVICE/Target Middlewares/Third_Party/FatFs/src Middlewares/ST/STM32_USB_Device_Library/Core/Inc Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Inc mlx90640 user ST7789 w25qxx USB_DEVICE/App USB_DEVICE/Target FATFS/App FATFS/Target DSP_LIB/Include)
-
-add_definitions(-DUSE_HAL_DRIVER -DSTM32WL55xx -DDEBUG)
-
-file(GLOB_RECURSE SOURCES "Core/*.*" "FATFS/*.*" "Middlewares/*.*" "Drivers/*.*" "USB_DEVICE/*.*" "mlx90640/*.*" "user/*.*" "ST7789/*.*" "w25qxx/*.*" "USB_DEVICE/App/*.*" "FATFS/App/*.*" "USB_DEVICE/Target/*.*" "FATFS/Target/*.*" "DSP_LIB/*.*")
-
-set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32WL55JCIX_FLASH.ld)
-
-add_link_options(-Wl,-gc-sections,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map)
-add_link_options(-mcpu=cortex-m4 -mthumb -mthumb-interwork)
-add_link_options(-T ${LINKER_SCRIPT})
-
-add_executable(${PROJECT_NAME}.elf ${SOURCES} ${LINKER_SCRIPT})
-
-set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex)
-set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin)
-
-add_custom_command(TARGET ${PROJECT_NAME}.elf POST_BUILD
- COMMAND ${CMAKE_OBJCOPY} -Oihex $ ${HEX_FILE}
- COMMAND ${CMAKE_OBJCOPY} -Obinary $ ${BIN_FILE}
- COMMENT "Building ${HEX_FILE}
-Building ${BIN_FILE}")
diff --git a/STM32CubeIDE/LoRaWAN_End_Node.launch b/STM32CubeIDE/LoRaWAN_End_Node.launch
deleted file mode 100644
index 916d98e..0000000
--- a/STM32CubeIDE/LoRaWAN_End_Node.launch
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/STM32CubeIDE/Release/makefile b/STM32CubeIDE/Release/makefile
index 342a988..b2ed8c2 100644
--- a/STM32CubeIDE/Release/makefile
+++ b/STM32CubeIDE/Release/makefile
@@ -72,7 +72,7 @@ main-build: STS-TMG.elf secondary-outputs
# 工具调用
STS-TMG.elf STS-TMG.map: $(OBJS) $(USER_OBJS) D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\ThermalGraph_POC_WL55JC\STM32CubeIDE\STM32WL55JCIX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
- arm-none-eabi-gcc -o "STS-TMG.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\ThermalGraph_POC_WL55JC\STM32CubeIDE\STM32WL55JCIX_FLASH.ld" --specs=nosys.specs -Wl,-Map="STS-TMG.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
+ arm-none-eabi-gcc -o "STS-TMG.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\ThermalGraph_POC_WL55JC\STM32CubeIDE\STM32WL55JCIX_FLASH.ld" --specs=nosys.specs -Wl,-Map="STS-TMG.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -u _printf_float -Wl,--start-group -lc -lm -Wl,--end-group
@echo '已结束构建目标: $@'
@echo ' '
diff --git a/readme.txt b/readme.txt
index 2dd542d..6ae15a3 100644
--- a/readme.txt
+++ b/readme.txt
@@ -26,7 +26,7 @@
ThermalGraph_POC_WL55JC For
| STS-TMG | Thermal Graph Detection Sensor | ALL |
- | STS-TM1 | Thermal Graph Detection Sensor | MLX90640 |
+ | STS-TM1 | Thermal Graph Detection Sensor | MLX90640-32x24 |
| STS-TH1 | Thermal Graph Detection Sensor | HTPA32X32 |
| STS-TH2 | Thermal Graph Detection Sensor | HTPA80X64 |
| STS-TI1 | Thermal Graph Detection Sensor | MI0801 |