[Upload Code]:Change AI Output UART2 -> UART6

This commit is contained in:
Brin 2025-05-20 15:38:59 +08:00
parent efa7e1d88c
commit e6b87cf8bc
22 changed files with 13778 additions and 4476 deletions

View File

@ -56,7 +56,7 @@
| 2025-05-14 | 增加Shell控制台、增加串口2用于蓝牙 | 增加调试接口 | | 2025-05-14 | 增加Shell控制台、增加串口2用于蓝牙 | 增加调试接口 |
| 2025-05-16 | 更换芯片STM32F405 | 重新构建 | | 2025-05-16 | 更换芯片STM32F405 | 重新构建 |
| 2025-05-19 | AI算法融合完毕验证数据集可行 | 文件更新 | | 2025-05-19 | AI算法融合完毕验证数据集可行 | 文件更新 |
| 2025-05-20 | 新建AI线程 算法功能验证完成 | 线程增加 | | 2025-05-20 | 新建AI线程 算法功能验证完成 修改串口 | 线程增加 |
--- ---

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -32,13 +32,13 @@ extern "C" {
/* USER CODE END Includes */ /* USER CODE END Includes */
extern UART_HandleTypeDef huart2; extern UART_HandleTypeDef huart6;
/* USER CODE BEGIN Private defines */ /* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */ /* USER CODE END Private defines */
void MX_USART2_UART_Init(void); void MX_USART6_UART_Init(void);
/* USER CODE BEGIN Prototypes */ /* USER CODE BEGIN Prototypes */

View File

@ -46,8 +46,9 @@ void MX_GPIO_Init(void)
/* GPIO Ports Clock Enable */ /* GPIO Ports Clock Enable */
__HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, LED_B_Pin|LED_G_Pin|LED_R_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, LED_B_Pin|LED_G_Pin|LED_R_Pin, GPIO_PIN_SET);

View File

@ -18,7 +18,6 @@
/* USER CODE END Header */ /* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "main.h" #include "main.h"
#include "usart.h"
#include "gpio.h" #include "gpio.h"
#include "app_x-cube-ai.h" #include "app_x-cube-ai.h"
@ -60,9 +59,9 @@ void SystemClock_Config(void);
/* USER CODE END 0 */ /* USER CODE END 0 */
/** /**
* @brief The application entry point. * @brief The application entry point.
* @retval int * @retval int
*/ */
int main(void) int main(void)
{ {
@ -88,7 +87,6 @@ int main(void)
/* Initialize all configured peripherals */ /* Initialize all configured peripherals */
MX_GPIO_Init(); MX_GPIO_Init();
MX_USART2_UART_Init();
MX_X_CUBE_AI_Init(); MX_X_CUBE_AI_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
@ -108,22 +106,22 @@ int main(void)
} }
/** /**
* @brief System Clock Configuration * @brief System Clock Configuration
* @retval None * @retval None
*/ */
void SystemClock_Config(void) void SystemClock_Config(void)
{ {
RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/** Configure the main internal regulator output voltage /** Configure the main internal regulator output voltage
*/ */
__HAL_RCC_PWR_CLK_ENABLE(); __HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/** Initializes the RCC Oscillators according to the specified parameters /** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure. * in the RCC_OscInitTypeDef structure.
*/ */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
@ -138,8 +136,9 @@ void SystemClock_Config(void)
} }
/** Initializes the CPU, AHB and APB buses clocks /** Initializes the CPU, AHB and APB buses clocks
*/ */
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
@ -151,7 +150,7 @@ void SystemClock_Config(void)
} }
/** Enables the Clock Security System /** Enables the Clock Security System
*/ */
HAL_RCC_EnableCSS(); HAL_RCC_EnableCSS();
} }
@ -160,9 +159,9 @@ void SystemClock_Config(void)
/* USER CODE END 4 */ /* USER CODE END 4 */
/** /**
* @brief This function is executed in case of error occurrence. * @brief This function is executed in case of error occurrence.
* @retval None * @retval None
*/ */
void Error_Handler(void) void Error_Handler(void)
{ {
/* USER CODE BEGIN Error_Handler_Debug */ /* USER CODE BEGIN Error_Handler_Debug */
@ -174,14 +173,14 @@ void Error_Handler(void)
/* USER CODE END Error_Handler_Debug */ /* USER CODE END Error_Handler_Debug */
} }
#ifdef USE_FULL_ASSERT #ifdef USE_FULL_ASSERT
/** /**
* @brief Reports the name of the source file and the source line number * @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred. * where the assert_param error has occurred.
* @param file: pointer to the source file name * @param file: pointer to the source file name
* @param line: assert_param error line source number * @param line: assert_param error line source number
* @retval None * @retval None
*/ */
void assert_failed(uint8_t *file, uint32_t line) void assert_failed(uint8_t *file, uint32_t line)
{ {
/* USER CODE BEGIN 6 */ /* USER CODE BEGIN 6 */

View File

@ -24,35 +24,35 @@
/* USER CODE END 0 */ /* USER CODE END 0 */
UART_HandleTypeDef huart2; UART_HandleTypeDef huart6;
/* USART2 init function */ /* USART6 init function */
void MX_USART2_UART_Init(void) void MX_USART6_UART_Init(void)
{ {
/* USER CODE BEGIN USART2_Init 0 */ /* USER CODE BEGIN USART6_Init 0 */
/* USER CODE END USART2_Init 0 */ /* USER CODE END USART6_Init 0 */
/* USER CODE BEGIN USART2_Init 1 */ /* USER CODE BEGIN USART6_Init 1 */
/* USER CODE END USART2_Init 1 */ /* USER CODE END USART6_Init 1 */
huart2.Instance = USART2; huart6.Instance = USART6;
huart2.Init.BaudRate = 115200; huart6.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B; huart6.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1; huart6.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE; huart6.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX; huart6.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16; huart6.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart2) != HAL_OK) if (HAL_UART_Init(&huart6) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
} }
/* USER CODE BEGIN USART2_Init 2 */ /* USER CODE BEGIN USART6_Init 2 */
/* USER CODE END USART2_Init 2 */ /* USER CODE END USART6_Init 2 */
} }
@ -60,52 +60,52 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{ {
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(uartHandle->Instance==USART2) if(uartHandle->Instance==USART6)
{ {
/* USER CODE BEGIN USART2_MspInit 0 */ /* USER CODE BEGIN USART6_MspInit 0 */
/* USER CODE END USART2_MspInit 0 */ /* USER CODE END USART6_MspInit 0 */
/* USART2 clock enable */ /* USART6 clock enable */
__HAL_RCC_USART2_CLK_ENABLE(); __HAL_RCC_USART6_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE();
/**USART2 GPIO Configuration /**USART6 GPIO Configuration
PA2 ------> USART2_TX PC6 ------> USART6_TX
PA3 ------> USART2_RX PC7 ------> USART6_RX
*/ */
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
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;
GPIO_InitStruct.Alternate = GPIO_AF7_USART2; GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* USER CODE BEGIN USART2_MspInit 1 */ /* USER CODE BEGIN USART6_MspInit 1 */
/* USER CODE END USART2_MspInit 1 */ /* USER CODE END USART6_MspInit 1 */
} }
} }
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
{ {
if(uartHandle->Instance==USART2) if(uartHandle->Instance==USART6)
{ {
/* USER CODE BEGIN USART2_MspDeInit 0 */ /* USER CODE BEGIN USART6_MspDeInit 0 */
/* USER CODE END USART2_MspDeInit 0 */ /* USER CODE END USART6_MspDeInit 0 */
/* Peripheral clock disable */ /* Peripheral clock disable */
__HAL_RCC_USART2_CLK_DISABLE(); __HAL_RCC_USART6_CLK_DISABLE();
/**USART2 GPIO Configuration /**USART6 GPIO Configuration
PA2 ------> USART2_TX PC6 ------> USART6_TX
PA3 ------> USART2_RX PC7 ------> USART6_RX
*/ */
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3); HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7);
/* USER CODE BEGIN USART2_MspDeInit 1 */ /* USER CODE BEGIN USART6_MspDeInit 1 */
/* USER CODE END USART2_MspDeInit 1 */ /* USER CODE END USART6_MspDeInit 1 */
} }
} }

File diff suppressed because one or more lines are too long

View File

@ -246,6 +246,18 @@
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\myEdge_ai_app.c</PathWithFileName>
<FilenameWithoutPath>myEdge_ai_app.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/main.c</PathWithFileName> <PathWithFileName>../Core/Src/main.c</PathWithFileName>
<FilenameWithoutPath>main.c</FilenameWithoutPath> <FilenameWithoutPath>main.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -253,7 +265,7 @@
</File> </File>
<File> <File>
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber> <FileNumber>4</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -265,7 +277,7 @@
</File> </File>
<File> <File>
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>4</FileNumber> <FileNumber>5</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -277,7 +289,7 @@
</File> </File>
<File> <File>
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>5</FileNumber> <FileNumber>6</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -289,7 +301,7 @@
</File> </File>
<File> <File>
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>6</FileNumber> <FileNumber>7</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -299,18 +311,6 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\myEdge_ai_app.c</PathWithFileName>
<FilenameWithoutPath>myEdge_ai_app.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>

View File

@ -392,6 +392,11 @@
<Group> <Group>
<GroupName>Application/User/Core</GroupName> <GroupName>Application/User/Core</GroupName>
<Files> <Files>
<File>
<FileName>myEdge_ai_app.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\myEdge_ai_app.c</FilePath>
</File>
<File> <File>
<FileName>main.c</FileName> <FileName>main.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -468,11 +473,6 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>../Core/Src/stm32f4xx_hal_msp.c</FilePath> <FilePath>../Core/Src/stm32f4xx_hal_msp.c</FilePath>
</File> </File>
<File>
<FileName>myEdge_ai_app.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\myEdge_ai_app.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
****************************************************************************** ******************************************************************************
* @file model.c * @file model.c
* @author AST Embedded Analytics Research Platform * @author AST Embedded Analytics Research Platform
* @date 2025-05-19T13:07:49+0800 * @date 2025-05-20T15:23:57+0800
* @brief AI Tool Automatic Code Generator for Embedded NN computing * @brief AI Tool Automatic Code Generator for Embedded NN computing
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -42,7 +42,7 @@
#endif #endif
#undef AI_TOOLS_DATE_TIME #undef AI_TOOLS_DATE_TIME
#define AI_TOOLS_DATE_TIME "2025-05-19T13:07:49+0800" #define AI_TOOLS_DATE_TIME "2025-05-20T15:23:57+0800"
#undef AI_TOOLS_COMPILE_TIME #undef AI_TOOLS_COMPILE_TIME
#define AI_TOOLS_COMPILE_TIME __DATE__ " " __TIME__ #define AI_TOOLS_COMPILE_TIME __DATE__ " " __TIME__
@ -1750,7 +1750,7 @@ AI_NETWORK_OBJ_DECLARE(
37120, NULL, NULL), 37120, NULL, NULL),
AI_TENSOR_LIST_IO_OBJ_INIT(AI_FLAG_NONE, AI_MODEL_IN_NUM, &serving_default_input0_output), AI_TENSOR_LIST_IO_OBJ_INIT(AI_FLAG_NONE, AI_MODEL_IN_NUM, &serving_default_input0_output),
AI_TENSOR_LIST_IO_OBJ_INIT(AI_FLAG_NONE, AI_MODEL_OUT_NUM, &nl_30_output), AI_TENSOR_LIST_IO_OBJ_INIT(AI_FLAG_NONE, AI_MODEL_OUT_NUM, &nl_30_output),
&conv2d_4_layer, 0x1e9c03d7, NULL) &conv2d_4_layer, 0x8f4871f5, NULL)
#else #else
@ -1770,7 +1770,7 @@ AI_NETWORK_OBJ_DECLARE(
), ),
AI_TENSOR_LIST_IO_OBJ_INIT(AI_FLAG_NONE, AI_MODEL_IN_NUM, &serving_default_input0_output), AI_TENSOR_LIST_IO_OBJ_INIT(AI_FLAG_NONE, AI_MODEL_IN_NUM, &serving_default_input0_output),
AI_TENSOR_LIST_IO_OBJ_INIT(AI_FLAG_NONE, AI_MODEL_OUT_NUM, &nl_30_output), AI_TENSOR_LIST_IO_OBJ_INIT(AI_FLAG_NONE, AI_MODEL_OUT_NUM, &nl_30_output),
&conv2d_4_layer, 0x1e9c03d7, NULL) &conv2d_4_layer, 0x8f4871f5, NULL)
#endif /*(AI_TOOLS_API_VERSION < AI_TOOLS_API_VERSION_1_5)*/ #endif /*(AI_TOOLS_API_VERSION < AI_TOOLS_API_VERSION_1_5)*/
@ -2047,7 +2047,7 @@ ai_bool ai_model_get_info(
.params = AI_STRUCT_INIT, .params = AI_STRUCT_INIT,
.activations = AI_STRUCT_INIT, .activations = AI_STRUCT_INIT,
.n_nodes = 0, .n_nodes = 0,
.signature = 0x1e9c03d7, .signature = 0x8f4871f5,
}; };
if (!ai_platform_api_get_network_report(network, &r)) return false; if (!ai_platform_api_get_network_report(network, &r)) return false;
@ -2095,7 +2095,7 @@ ai_bool ai_model_get_report(
.map_weights = AI_STRUCT_INIT, .map_weights = AI_STRUCT_INIT,
.map_activations = AI_STRUCT_INIT, .map_activations = AI_STRUCT_INIT,
.n_nodes = 0, .n_nodes = 0,
.signature = 0x1e9c03d7, .signature = 0x8f4871f5,
}; };
if (!ai_platform_api_get_network_report(network, &r)) return false; if (!ai_platform_api_get_network_report(network, &r)) return false;

View File

@ -2,7 +2,7 @@
****************************************************************************** ******************************************************************************
* @file model.h * @file model.h
* @author AST Embedded Analytics Research Platform * @author AST Embedded Analytics Research Platform
* @date 2025-05-19T13:07:49+0800 * @date 2025-05-20T15:23:57+0800
* @brief AI Tool Automatic Code Generator for Embedded NN computing * @brief AI Tool Automatic Code Generator for Embedded NN computing
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -3,7 +3,7 @@
****************************************************************************** ******************************************************************************
* @file model_config.h * @file model_config.h
* @author AST Embedded Analytics Research Platform * @author AST Embedded Analytics Research Platform
* @date 2025-05-19T13:07:49+0800 * @date 2025-05-20T15:23:57+0800
* @brief AI Tool Automatic Code Generator for Custom Layers Implementation * @brief AI Tool Automatic Code Generator for Custom Layers Implementation
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,7 +2,7 @@
****************************************************************************** ******************************************************************************
* @file model_data.c * @file model_data.c
* @author AST Embedded Analytics Research Platform * @author AST Embedded Analytics Research Platform
* @date 2025-05-19T13:07:49+0800 * @date 2025-05-20T15:23:57+0800
* @brief AI Tool Automatic Code Generator for Embedded NN computing * @brief AI Tool Automatic Code Generator for Embedded NN computing
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,7 +2,7 @@
****************************************************************************** ******************************************************************************
* @file model_data.h * @file model_data.h
* @author AST Embedded Analytics Research Platform * @author AST Embedded Analytics Research Platform
* @date 2025-05-19T13:07:49+0800 * @date 2025-05-20T15:23:57+0800
* @brief AI Tool Automatic Code Generator for Embedded NN computing * @brief AI Tool Automatic Code Generator for Embedded NN computing
****************************************************************************** ******************************************************************************
* Copyright (c) 2025 STMicroelectronics. * Copyright (c) 2025 STMicroelectronics.

View File

@ -2,7 +2,7 @@
****************************************************************************** ******************************************************************************
* @file model_data_params.c * @file model_data_params.c
* @author AST Embedded Analytics Research Platform * @author AST Embedded Analytics Research Platform
* @date 2025-05-19T13:07:49+0800 * @date 2025-05-20T15:23:57+0800
* @brief AI Tool Automatic Code Generator for Embedded NN computing * @brief AI Tool Automatic Code Generator for Embedded NN computing
****************************************************************************** ******************************************************************************
* Copyright (c) 2025 STMicroelectronics. * Copyright (c) 2025 STMicroelectronics.

View File

@ -2,7 +2,7 @@
****************************************************************************** ******************************************************************************
* @file model_data_params.h * @file model_data_params.h
* @author AST Embedded Analytics Research Platform * @author AST Embedded Analytics Research Platform
* @date 2025-05-19T13:07:49+0800 * @date 2025-05-20T15:23:57+0800
* @brief AI Tool Automatic Code Generator for Embedded NN computing * @brief AI Tool Automatic Code Generator for Embedded NN computing
****************************************************************************** ******************************************************************************
* Copyright (c) 2025 STMicroelectronics. * Copyright (c) 2025 STMicroelectronics.

View File

@ -1,6 +1,6 @@
ST Edge AI Core v2.0.0-20049 ST Edge AI Core v2.0.0-20049
Created date : 2025-05-19 13:07:51 Created date : 2025-05-20 15:23:59
Parameters : generate --target stm32f4 --name model -m D:/Job_Work/Code/Z_Python/myEnv/model.tflite --compression high --verbosity 1 -O ram --workspace C:/Users/admin/AppData/Local/Temp/mxAI_workspace24283202520290017248046793415177393 --output C:/Users/admin/.stm32cubemx/model_output Parameters : generate --target stm32f4 --name model -m D:/Job_Work/Code/Z_Python/myEnv/model.tflite --compression high --verbosity 1 -O ram --workspace C:/Users/admin/AppData/Local/Temp/mxAI_workspace33740368255090013021409726810218586 --output C:/Users/admin/.stm32cubemx/model_output
Exec/report summary (generate) Exec/report summary (generate)
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------
@ -11,7 +11,7 @@ compression : high
options : allocate-inputs, allocate-outputs options : allocate-inputs, allocate-outputs
optimization : ram optimization : ram
target/series : stm32f4 target/series : stm32f4
workspace dir : C:\Users\admin\AppData\Local\Temp\mxAI_workspace24283202520290017248046793415177393 workspace dir : C:\Users\admin\AppData\Local\Temp\mxAI_workspace33740368255090013021409726810218586
output dir : C:\Users\admin\.stm32cubemx\model_output output dir : C:\Users\admin\.stm32cubemx\model_output
model_fmt : float model_fmt : float
model_name : model model_name : model

View File

@ -25,9 +25,9 @@
#include "stm32f4xx.h" #include "stm32f4xx.h"
#include "app_x-cube-ai.h" #include "app_x-cube-ai.h"
#include "constants_ai.h" #include "constants_ai.h"
#define UartHandle huart2 #define UartHandle huart6
#define MX_UARTx_Init MX_USART2_UART_Init #define MX_UARTx_Init MX_USART6_UART_Init
void MX_USART2_UART_Init(void); void MX_USART6_UART_Init(void);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -10,7 +10,7 @@ Mcu.Family=STM32F4
Mcu.IP0=NVIC Mcu.IP0=NVIC
Mcu.IP1=RCC Mcu.IP1=RCC
Mcu.IP2=SYS Mcu.IP2=SYS
Mcu.IP3=USART2 Mcu.IP3=USART6
Mcu.IPNb=4 Mcu.IPNb=4
Mcu.Name=STM32F405RGTx Mcu.Name=STM32F405RGTx
Mcu.Package=LQFP64 Mcu.Package=LQFP64
@ -19,11 +19,11 @@ Mcu.Pin1=PH1-OSC_OUT
Mcu.Pin10=VP_STMicroelectronics.X-CUBE-AI_VS_ArtificialOoIntelligenceJjXAaCUBEAaAI_10.0.0 Mcu.Pin10=VP_STMicroelectronics.X-CUBE-AI_VS_ArtificialOoIntelligenceJjXAaCUBEAaAI_10.0.0
Mcu.Pin11=VP_STMicroelectronics.X-CUBE-AI_VS_DeviceJjApplication_10.0.0 Mcu.Pin11=VP_STMicroelectronics.X-CUBE-AI_VS_DeviceJjApplication_10.0.0
Mcu.Pin12=VP_RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1 Mcu.Pin12=VP_RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1
Mcu.Pin2=PA2 Mcu.Pin2=PB0
Mcu.Pin3=PA3 Mcu.Pin3=PB1
Mcu.Pin4=PB0 Mcu.Pin4=PB2
Mcu.Pin5=PB1 Mcu.Pin5=PC6
Mcu.Pin6=PB2 Mcu.Pin6=PC7
Mcu.Pin7=PA13 Mcu.Pin7=PA13
Mcu.Pin8=PA14 Mcu.Pin8=PA14
Mcu.Pin9=VP_SYS_VS_Systick Mcu.Pin9=VP_SYS_VS_Systick
@ -53,10 +53,6 @@ PA13.Mode=Serial_Wire
PA13.Signal=SYS_JTMS-SWDIO PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Serial_Wire PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK PA14.Signal=SYS_JTCK-SWCLK
PA2.Mode=Asynchronous
PA2.Signal=USART2_TX
PA3.Mode=Asynchronous
PA3.Signal=USART2_RX
PB0.GPIOParameters=PinState,GPIO_Label PB0.GPIOParameters=PinState,GPIO_Label
PB0.GPIO_Label=LED_B PB0.GPIO_Label=LED_B
PB0.Locked=true PB0.Locked=true
@ -72,6 +68,10 @@ PB2.GPIO_Label=LED_R
PB2.Locked=true PB2.Locked=true
PB2.PinState=GPIO_PIN_SET PB2.PinState=GPIO_PIN_SET
PB2.Signal=GPIO_Output PB2.Signal=GPIO_Output
PC6.Mode=Asynchronous
PC6.Signal=USART6_TX
PC7.Mode=Asynchronous
PC7.Signal=USART6_RX
PH0-OSC_IN.Mode=HSE-External-Oscillator PH0-OSC_IN.Mode=HSE-External-Oscillator
PH0-OSC_IN.Signal=RCC_OSC_IN PH0-OSC_IN.Signal=RCC_OSC_IN
PH1-OSC_OUT.Mode=HSE-External-Oscillator PH1-OSC_OUT.Mode=HSE-External-Oscillator
@ -108,7 +108,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath= ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_X_CUBE_AI_Init-STMicroelectronics.X-CUBE-AI.10.0.0-false-HAL-false,5-MX_X_CUBE_AI_Process-STMicroelectronics.X-CUBE-AI.10.0.0-false-HAL-false ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART2_UART_Init-USART2-false-HAL-true,3-MX_X_CUBE_AI_Init-STMicroelectronics.X-CUBE-AI.10.0.0-false-HAL-false,4-MX_X_CUBE_AI_Process-STMicroelectronics.X-CUBE-AI.10.0.0-false-HAL-false
RCC.48MHZClocksFreq_Value=84000000 RCC.48MHZClocksFreq_Value=84000000
RCC.AHBFreq_Value=168000000 RCC.AHBFreq_Value=168000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4 RCC.APB1CLKDivider=RCC_HCLK_DIV4
@ -160,7 +160,7 @@ STMicroelectronics.X-CUBE-AI.10.0.0.ArtificialOoIntelligenceJjXAaCUBEAaAI_Checke
STMicroelectronics.X-CUBE-AI.10.0.0.BSP.number=1 STMicroelectronics.X-CUBE-AI.10.0.0.BSP.number=1
STMicroelectronics.X-CUBE-AI.10.0.0.DeviceJjApplication_Checked=true STMicroelectronics.X-CUBE-AI.10.0.0.DeviceJjApplication_Checked=true
STMicroelectronics.X-CUBE-AI.10.0.0.HeapSize=0x800 STMicroelectronics.X-CUBE-AI.10.0.0.HeapSize=0x800
STMicroelectronics.X-CUBE-AI.10.0.0.IPParameters=HeapSize,StackSize,ModelName-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelKind-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelCompression-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelHashList,ModelNameList,WorkingBufferStartAddrList,LatestDirectoryUsed-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelStructureFile-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelMacc-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelActualCompression-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelRamOccupation-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelFlashOccupation-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelType-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,copyWeightToRam,useInputAllocation,useOutputAllocation,customLayerConfigEnabled,optimization,noOnnxIoTranspose,ActivationBuffers,ActivationSizes,ActivationNames,InternalRamActivationBufferMaxSize,ActivationBufferSizeList,MaximumNumberOfInputLayer,MaximumNumberOfOutputLayer,MaximumSizeOfInputLayer,MaximumSizeOfOutputLayer,ReadyForCodeGeneration,XAaCUBEAaAICcArtificialOoIntelligenceJjCore,ApplicationCcDeviceJjApplication,copyWeightToRam-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,useInputAllocation-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,useOutputAllocation-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,customLayerConfigEnabled-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,optimization-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,noOnnxIoTranspose-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d STMicroelectronics.X-CUBE-AI.10.0.0.IPParameters=HeapSize,StackSize,ModelName-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelKind-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelCompression-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelHashList,ModelNameList,WorkingBufferStartAddrList,LatestDirectoryUsed-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelStructureFile-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelMacc-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelActualCompression-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelRamOccupation-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelFlashOccupation-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,ModelType-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,copyWeightToRam,useInputAllocation,useOutputAllocation,customLayerConfigEnabled,optimization,noOnnxIoTranspose,ActivationBuffers,ActivationSizes,ActivationNames,InternalRamActivationBufferMaxSize,ActivationBufferSizeList,MaximumNumberOfInputLayer,MaximumNumberOfOutputLayer,MaximumSizeOfInputLayer,MaximumSizeOfOutputLayer,ReadyForCodeGeneration,copyWeightToRam-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,useInputAllocation-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,useOutputAllocation-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,customLayerConfigEnabled-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,optimization-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,noOnnxIoTranspose-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d,XAaCUBEAaAICcArtificialOoIntelligenceJjCore,ApplicationCcDeviceJjApplication
STMicroelectronics.X-CUBE-AI.10.0.0.InternalRamActivationBufferMaxSize=AI_MODEL_DATA_ACTIVATIONS_SIZE STMicroelectronics.X-CUBE-AI.10.0.0.InternalRamActivationBufferMaxSize=AI_MODEL_DATA_ACTIVATIONS_SIZE
STMicroelectronics.X-CUBE-AI.10.0.0.LatestDirectoryUsed-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d=D\:\\Job_Work\\Code\\Z_Python\\myEnv STMicroelectronics.X-CUBE-AI.10.0.0.LatestDirectoryUsed-c35f95d1c3769e6590a83616504880a40e4284009f187f8d3c6d958dcc42b13d=D\:\\Job_Work\\Code\\Z_Python\\myEnv
STMicroelectronics.X-CUBE-AI.10.0.0.MaximumNumberOfInputLayer=1 STMicroelectronics.X-CUBE-AI.10.0.0.MaximumNumberOfInputLayer=1
@ -198,15 +198,15 @@ STMicroelectronics.X-CUBE-AI.10.0.00.BSP.STBoard=false
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.api=Unknown STMicroelectronics.X-CUBE-AI.10.0.00.BSP.api=Unknown
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.component= STMicroelectronics.X-CUBE-AI.10.0.00.BSP.component=
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.condition=\!SEMDeviceJjApplicationJjApplicationTemplate STMicroelectronics.X-CUBE-AI.10.0.00.BSP.condition=\!SEMDeviceJjApplicationJjApplicationTemplate
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.instance=USART2 STMicroelectronics.X-CUBE-AI.10.0.00.BSP.instance=USART6
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.ip=USART STMicroelectronics.X-CUBE-AI.10.0.00.BSP.ip=USART
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.mode=Asynchronous STMicroelectronics.X-CUBE-AI.10.0.00.BSP.mode=Asynchronous
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.name=COM Port STMicroelectronics.X-CUBE-AI.10.0.00.BSP.name=COM Port
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.semaphore= STMicroelectronics.X-CUBE-AI.10.0.00.BSP.semaphore=
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.solution=USART2 STMicroelectronics.X-CUBE-AI.10.0.00.BSP.solution=USART6
STMicroelectronics.X-CUBE-AI.10.0.0_SwParameter=ApplicationCcDeviceJjApplication\:SystemPerformance;XAaCUBEAaAICcArtificialOoIntelligenceJjCore\:true; STMicroelectronics.X-CUBE-AI.10.0.0_SwParameter=ApplicationCcDeviceJjApplication\:SystemPerformance;XAaCUBEAaAICcArtificialOoIntelligenceJjCore\:true;
USART2.IPParameters=VirtualMode USART6.IPParameters=VirtualMode
USART2.VirtualMode=VM_ASYNC USART6.VirtualMode=VM_ASYNC
VP_RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1.Mode=RTOSJjRTAaThread VP_RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1.Mode=RTOSJjRTAaThread
VP_RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1.Signal=RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1 VP_RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1.Signal=RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1
VP_STMicroelectronics.X-CUBE-AI_VS_ArtificialOoIntelligenceJjXAaCUBEAaAI_10.0.0.Mode=ArtificialOoIntelligenceJjXAaCUBEAaAI VP_STMicroelectronics.X-CUBE-AI_VS_ArtificialOoIntelligenceJjXAaCUBEAaAI_10.0.0.Mode=ArtificialOoIntelligenceJjXAaCUBEAaAI