[Upload Code]:File add Sensor Code

This commit is contained in:
Brin 2025-05-23 17:09:26 +08:00
parent 4541a64284
commit 11c4c3de5b
24 changed files with 5535 additions and 5022 deletions

View File

@ -59,6 +59,7 @@
| 2025-05-20 | 新建AI线程 算法功能验证完成 修改串口 | 线程增加 |
| | 增加床垫部分的协议 | |
| 2025-05-22 | 增加相关文件、分类三个文件夹 | |
| 2025-05-23 | 增加UART的传感器处理部分的功能函数 | |
---

View File

@ -247,7 +247,7 @@
}
},
"activations_alignment": 4,
"arguments": "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_workspace58817575857220016258893509567582083 --output C:/Users/admin/.stm32cubemx/model_output",
"arguments": "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_workspace6000558500847004033730230884047298 --output C:/Users/admin/.stm32cubemx/model_output",
"c_activations_count": 1,
"c_arrays": [
{
@ -3533,7 +3533,7 @@
]
},
"data_alignment": 4,
"date_time": "2025-05-23T13:03:23+0800",
"date_time": "2025-05-23T16:21:19+0800",
"inputs": [
"serving_default_input0_output"
],

View File

@ -2492,44 +2492,44 @@
],
"environment": {
"generated_model": {
"generated_time": "2025-05-23T13:03:23+0800",
"generated_time": "2025-05-23T16:21:19+0800",
"model_files": [
{
"name": "model_data_params.h",
"signature": "0xac7fa6deda0c004b1b77763f67e38657"
"signature": "0x285a00c2bbeef069af677ed0ce3dba0e"
},
{
"name": "model_data_params.c",
"signature": "0x72b292d3d3fddce7aa1f1052c31eb1d1"
"signature": "0x8b57c92c0e24bc89a778216f7289a545"
},
{
"name": "model_data.h",
"signature": "0xcc4d860cfbb9da99cf2d9c425b6cfe1a"
"signature": "0x3ae7fcc339b41b17fa868f0e1af1226b"
},
{
"name": "model_data.c",
"signature": "0xe69e524d6a2673990790f226f810a3a7"
"signature": "0xfd205bc8c6a944bb6e726792f2979b83"
},
{
"name": "model_config.h",
"signature": "0x6bcfc2d76a6902ce2dcae00d62e4cbac"
"signature": "0x35f9c5d8dd222c5a9405d03f90660c40"
},
{
"name": "model.h",
"signature": "0x755b7f755a8565916c5e9c545ea21b2a"
"signature": "0xcba722601f59dc2f95ef31bc7ca6343b"
},
{
"name": "model.c",
"signature": "0x9cb6c9c4285eacb6db225b24f99afd0b"
"signature": "0xfbe775e12719a72bfaaf457853a06b76"
}
],
"name": "model"
},
"network_signature": "0x9af77c7fe063f082",
"network_signature": "0xfec2e1908a71df55",
"test_name": "",
"tools": [
{
"arguments": "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_workspace58817575857220016258893509567582083 --output C:/Users/admin/.stm32cubemx/model_output",
"arguments": "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_workspace6000558500847004033730230884047298 --output C:/Users/admin/.stm32cubemx/model_output",
"environment": [
"STATS_TYPE=X-CUBE-AI"
],

View File

@ -1,7 +1,7 @@
{
"_allocate_inputs": 4,
"_allocate_outputs": 4,
"cli_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_workspace58817575857220016258893509567582083 --output C:/Users/admin/.stm32cubemx/model_output",
"cli_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_workspace6000558500847004033730230884047298 --output C:/Users/admin/.stm32cubemx/model_output",
"cli_version": {
"extra": "20049",
"major": 2,
@ -11,7 +11,7 @@
"cli_version_str": "2.0.0-20049",
"code_size": 0,
"compression": [],
"date_time": "2025-05-23T13:03:23+0800",
"date_time": "2025-05-23T16:21:19+0800",
"error": 0,
"error_str": [],
"exec_cmd": "generate",

View File

@ -5,6 +5,8 @@
"app_x-cube-ai.h": "c",
"usart.h": "c",
"main.h": "c",
"mymattress_ctrl.h": "c"
"mymattress_ctrl.h": "c",
"segger_rtt.h": "c",
"mysensor_deal.h": "c"
}
}

View File

@ -34,6 +34,8 @@ extern "C" {
#include "SEGGER_RTT.h"
#include "rtthread.h"
#include "math.h"
#include <stdint.h>
#include <ctype.h>
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
@ -44,11 +46,13 @@ extern "C" {
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
#define SENSOR_RX_BUFFER_SIZE 1024
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
extern uint16_t sensor_uart_rx_len;
extern uint8_t sensor_uart_rx_buffer[SENSOR_RX_BUFFER_SIZE];
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/
@ -56,6 +60,7 @@ void Error_Handler(void);
/* USER CODE BEGIN EFP */
void hex_dump(const void *data, size_t size);
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/

View File

@ -0,0 +1,16 @@
#ifndef MYSENSOR_DEAL_H
#define MYSENSOR_DEAL_H
#ifdef __cplusplus
extern "C"
{
#endif
#include "main.h"
extern struct rt_event uart_rx_event;
#ifdef __cplusplus
}
#endif
#endif // MYEDGE_AI_APP_H

View File

@ -46,7 +46,8 @@
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
uint16_t sensor_uart_rx_len = 0;
uint8_t sensor_uart_rx_buffer[SENSOR_RX_BUFFER_SIZE]; // DMA搬运目标缓存
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
@ -93,6 +94,9 @@ int main(void)
MX_USART2_UART_Init();
MX_X_CUBE_AI_Init();
/* USER CODE BEGIN 2 */
__HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); // 使能串口IDLE中断
HAL_UART_Receive_DMA(&huart2, sensor_uart_rx_buffer,
SENSOR_RX_BUFFER_SIZE); // 开启串口接收DMA
/* USER CODE END 2 */
@ -159,7 +163,44 @@ void SystemClock_Config(void)
}
/* USER CODE BEGIN 4 */
/**
* ASCII格式168
*/
void hex_dump(const void *data, size_t size)
{
const uint8_t *byte_data = (const uint8_t *)data;
size_t i, j;
for (i = 0; i < size; i += 16)
{
// 打印16字节16进制8字节后额外空格
for (j = 0; j < 16; j++)
{
if (i + j < size)
rt_kprintf("%02X ", byte_data[i + j]);
else
rt_kprintf(" ");
if (j == 7) rt_kprintf(" "); // 每8字节后额外空格
}
rt_kprintf(" |");
// 打印对应ASCII字符非打印字符用'.'代替
for (j = 0; j < 16; j++)
{
if (i + j < size)
{
uint8_t ch = byte_data[i + j];
rt_kprintf("%c", isprint(ch) ? ch : '.');
}
else
{
rt_kprintf(" ");
}
}
rt_kprintf("|\n");
}
}
/* USER CODE END 4 */
/**

View File

@ -0,0 +1,67 @@
#include "usart.h"
#include "gpio.h"
#include "math.h"
#include "rtthread.h"
#include "mySensor_deal.h"
void uart_data_process(uint8_t *data, uint16_t len)
{
rt_kprintf("UART RX [%d bytes]: ", len);
for (int i = 0; i < len; i++)
{
rt_kprintf("%02X ", data[i]);
}
rt_kprintf("\n");
}
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
/* 定义线程栈与控制块(静态分配) */
#define SENSOR_THREAD_STACK_SIZE 512
struct rt_event uart_rx_event; // 静态事件对象;
static struct rt_thread sensor_thread;
static rt_uint8_t sensor_thread_stack[SENSOR_THREAD_STACK_SIZE];
/* 线程入口函数 */
static void sensor_thread_entry(void *parameter)
{
rt_uint32_t e;
while (1)
{
rt_kprintf("Wait Message...\n");
if (rt_event_recv(&uart_rx_event, 0x01, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, RT_WAITING_FOREVER, &e) == RT_EOK)
{
rt_kprintf("Get Message...\n");
hex_dump(sensor_uart_rx_buffer, sensor_uart_rx_len);
}
rt_thread_mdelay(15);
}
}
/* 初始化函数,使用静态线程启动 */
int sensor_thread_init(void)
{
rt_err_t result = rt_event_init(&uart_rx_event, "uart_rx_evt", RT_IPC_FLAG_FIFO);
if (result != RT_EOK)
{
return -RT_ERROR;
}
rt_thread_init(&sensor_thread, // 线程控制块
"sensor_task", // 名称
sensor_thread_entry, // 入口函数
RT_NULL, // 参数
&sensor_thread_stack[0], // 栈起始地址
sizeof(sensor_thread_stack), // 栈大小
8, // 优先级(高)
10); // 时间片
rt_thread_startup(&sensor_thread); // 启动线程
return RT_EOK;
}
INIT_APP_EXPORT(sensor_thread_init);
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////

View File

@ -22,6 +22,7 @@
#include "stm32f4xx_it.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "mySensor_deal.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@ -165,7 +166,19 @@ void DMA1_Stream5_IRQHandler(void)
void USART2_IRQHandler(void)
{
/* USER CODE BEGIN USART2_IRQn 0 */
if (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_IDLE) != RESET)
{ // 判断是否产生IDLE中断
__HAL_UART_CLEAR_IDLEFLAG(&huart2); // 清除IDLE中断标志位
HAL_UART_DMAStop(&huart2); // 停止DMA接收
uint16_t received_length = SENSOR_RX_BUFFER_SIZE - __HAL_DMA_GET_COUNTER(huart2.hdmarx); // 计算实际接收到的数据长度
// 业务代码
// HAL_UART_Transmit(&huart2, sensor_uart_rx_buffer, received_length, 100); // 发送接收到的数据 echo
HAL_UART_Receive_DMA(&huart2, sensor_uart_rx_buffer, SENSOR_RX_BUFFER_SIZE); // 开启DMA接收
sensor_uart_rx_len = received_length;
// 发送事件通知处理线程
rt_event_send(&uart_rx_event, 0x01);
}
/* USER CODE END USART2_IRQn 0 */
HAL_UART_IRQHandler(&huart2);
/* USER CODE BEGIN USART2_IRQn 1 */

File diff suppressed because one or more lines are too long

View File

@ -153,7 +153,24 @@
<Name>-U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F405RGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>171</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134227254</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>../Core/Src/stm32f4xx_it.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\\../Core/Src/stm32f4xx_it.c\171</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
@ -335,6 +352,18 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\mySensor_deal.c</PathWithFileName>
<FilenameWithoutPath>mySensor_deal.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -345,7 +374,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>10</FileNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -357,7 +386,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>11</FileNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -369,7 +398,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>12</FileNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -381,7 +410,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>13</FileNumber>
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -393,7 +422,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>14</FileNumber>
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -405,7 +434,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>15</FileNumber>
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -417,7 +446,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>16</FileNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -429,7 +458,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>17</FileNumber>
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -441,7 +470,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>18</FileNumber>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -453,7 +482,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>19</FileNumber>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -465,7 +494,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>20</FileNumber>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -477,7 +506,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>21</FileNumber>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -489,7 +518,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>22</FileNumber>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -501,7 +530,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>23</FileNumber>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -521,7 +550,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>24</FileNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -541,7 +570,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>25</FileNumber>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -553,7 +582,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>26</FileNumber>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -573,7 +602,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>27</FileNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -585,7 +614,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>28</FileNumber>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -597,7 +626,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>29</FileNumber>
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -609,7 +638,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>30</FileNumber>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -621,7 +650,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>31</FileNumber>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -633,7 +662,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>32</FileNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -645,7 +674,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>33</FileNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -657,7 +686,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>34</FileNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -669,7 +698,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>35</FileNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -681,7 +710,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>36</FileNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -701,7 +730,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>37</FileNumber>
<FileNumber>38</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -721,7 +750,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>38</FileNumber>
<FileNumber>39</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -741,7 +770,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>39</FileNumber>
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -753,7 +782,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>40</FileNumber>
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -765,7 +794,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>41</FileNumber>
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -777,7 +806,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>42</FileNumber>
<FileNumber>43</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -789,7 +818,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>43</FileNumber>
<FileNumber>44</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -809,7 +838,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>44</FileNumber>
<FileNumber>45</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -821,7 +850,7 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>45</FileNumber>
<FileNumber>46</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -841,7 +870,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>46</FileNumber>
<FileNumber>47</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -853,7 +882,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>47</FileNumber>
<FileNumber>48</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -865,7 +894,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>48</FileNumber>
<FileNumber>49</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -877,7 +906,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>49</FileNumber>
<FileNumber>50</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -889,7 +918,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>50</FileNumber>
<FileNumber>51</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -901,7 +930,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>51</FileNumber>
<FileNumber>52</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -913,7 +942,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>52</FileNumber>
<FileNumber>53</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -925,7 +954,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>53</FileNumber>
<FileNumber>54</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -937,7 +966,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>54</FileNumber>
<FileNumber>55</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -949,7 +978,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>55</FileNumber>
<FileNumber>56</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -961,7 +990,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>56</FileNumber>
<FileNumber>57</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -973,7 +1002,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>57</FileNumber>
<FileNumber>58</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -985,7 +1014,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>58</FileNumber>
<FileNumber>59</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -997,7 +1026,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>59</FileNumber>
<FileNumber>60</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1009,7 +1038,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>60</FileNumber>
<FileNumber>61</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1021,7 +1050,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>61</FileNumber>
<FileNumber>62</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1033,7 +1062,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>62</FileNumber>
<FileNumber>63</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View File

@ -360,7 +360,7 @@
</VariousControls>
</Aads>
<LDads>
<umfTarg>1</umfTarg>
<umfTarg>0</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
@ -534,6 +534,11 @@
<FileType>1</FileType>
<FilePath>../Core/Src/stm32f4xx_hal_msp.c</FilePath>
</File>
<File>
<FileName>mySensor_deal.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\mySensor_deal.c</FilePath>
</File>
</Files>
</Group>
<Group>

File diff suppressed because it is too large Load Diff

View File

@ -88,7 +88,7 @@
// <c1>Using Mutex
// <i>Using Mutex
//#define RT_USING_MUTEX
#define RT_USING_MUTEX
// </c>
// <c1>Using Signal
@ -98,17 +98,17 @@
// <c1>Using Event
// <i>Using Event
//#define RT_USING_EVENT
#define RT_USING_EVENT
// </c>
// <c1>Using MailBox
// <i>Using MailBox
//#define RT_USING_MAILBOX
#define RT_USING_MAILBOX
// </c>
// <c1>Using Message Queue
// <i>Using Message Queue
//#define RT_USING_MESSAGEQUEUE
#define RT_USING_MESSAGEQUEUE
// </c>
// </h>

View File

@ -2,7 +2,7 @@
******************************************************************************
* @file model.c
* @author AST Embedded Analytics Research Platform
* @date 2025-05-23T13:03:23+0800
* @date 2025-05-23T16:21:19+0800
* @brief AI Tool Automatic Code Generator for Embedded NN computing
******************************************************************************
* @attention
@ -42,7 +42,7 @@
#endif
#undef AI_TOOLS_DATE_TIME
#define AI_TOOLS_DATE_TIME "2025-05-23T13:03:23+0800"
#define AI_TOOLS_DATE_TIME "2025-05-23T16:21:19+0800"
#undef AI_TOOLS_COMPILE_TIME
#define AI_TOOLS_COMPILE_TIME __DATE__ " " __TIME__
@ -1750,7 +1750,7 @@ AI_NETWORK_OBJ_DECLARE(
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_OUT_NUM, &nl_30_output),
&conv2d_4_layer, 0x9af77c7f, NULL)
&conv2d_4_layer, 0xfec2e190, NULL)
#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_OUT_NUM, &nl_30_output),
&conv2d_4_layer, 0x9af77c7f, NULL)
&conv2d_4_layer, 0xfec2e190, NULL)
#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,
.activations = AI_STRUCT_INIT,
.n_nodes = 0,
.signature = 0x9af77c7f,
.signature = 0xfec2e190,
};
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_activations = AI_STRUCT_INIT,
.n_nodes = 0,
.signature = 0x9af77c7f,
.signature = 0xfec2e190,
};
if (!ai_platform_api_get_network_report(network, &r)) return false;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,9 +1,9 @@
ST Edge AI Core v2.0.0-20049
Created date : 2025-05-23 13:03:27
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_workspace58817575857220016258893509567582083 --output C:/Users/admin/.stm32cubemx/model_output
Created date : 2025-05-23 16:21:21
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_workspace6000558500847004033730230884047298 --output C:/Users/admin/.stm32cubemx/model_output
Exec/report summary (generate)
-------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
model file : D:\Job_Work\Code\Z_Python\myEnv\model.tflite
type : tflite
c_name : model
@ -11,20 +11,20 @@ compression : high
options : allocate-inputs, allocate-outputs
optimization : ram
target/series : stm32f4
workspace dir : C:\Users\admin\AppData\Local\Temp\mxAI_workspace58817575857220016258893509567582083
workspace dir : C:\Users\admin\AppData\Local\Temp\mxAI_workspace6000558500847004033730230884047298
output dir : C:\Users\admin\.stm32cubemx\model_output
model_fmt : float
model_name : model
model_hash : 0x391deb77460dcfce8d55e2fc3b80314e
params # : 8,419 items (32.89 KiB)
-------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
input 1/1 : 'serving_default_input0', f32(1x1024), 4.00 KBytes, activations
output 1/1 : 'nl_30', f32(1x3), 12 Bytes, activations
macc : 957,040
weights (ro) : 29,372 B (28.68 KiB) (1 segment) / -4,304(-12.8%) vs float model
activations (rw) : 37,120 B (36.25 KiB) (1 segment) *
ram (total) : 37,120 B (36.25 KiB) = 37,120 + 0 + 0
-------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
(*) 'input'/'output' buffers can be used from the activations buffer
Model name - model

View File

@ -165,13 +165,18 @@ RCC.VCOI2SOutputFreq_Value=384000000
RCC.VCOInputFreq_Value=2000000
RCC.VCOOutputFreq_Value=336000000
RCC.VcooutputI2S=192000000
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.IPParameters=RT_USING_CONSOLE,RT_USING_FINSH,RTAaThreadCcRTOSJjkernel,RTAaThreadCcRTOSJjshell,RTAaThreadCcRTOSJjlibcpu
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.IPParameters=RT_USING_CONSOLE,RT_USING_FINSH,RTAaThreadCcRTOSJjkernel,RTAaThreadCcRTOSJjshell,RTAaThreadCcRTOSJjlibcpu,RT_USING_EVENT,RT_USING_MESSAGEQUEUE,RT_USING_SIGNALS,RT_USING_MUTEX,RT_USING_MAILBOX
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RTAaThreadCcRTOSJjkernel=true
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RTAaThreadCcRTOSJjlibcpu=true
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RTAaThreadCcRTOSJjshell=true
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RTOSJjRTAaThread_Checked=true
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RT_USING_CONSOLE=1
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RT_USING_EVENT=1
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RT_USING_FINSH=1
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RT_USING_MAILBOX=1
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RT_USING_MESSAGEQUEUE=1
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RT_USING_MUTEX=1
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.RT_USING_SIGNALS=0
RealThread.X-CUBE-RT-Thread_Nano.4.1.1_SwParameter=RTAaThreadCcRTOSJjshell\:true;RTAaThreadCcRTOSJjlibcpu\:true;RTAaThreadCcRTOSJjkernel\:true;
STMicroelectronics.X-CUBE-AI.10.0.0.ActivationBufferSizeList=48356
STMicroelectronics.X-CUBE-AI.10.0.0.ActivationBuffers=pool0
@ -228,7 +233,8 @@ STMicroelectronics.X-CUBE-AI.10.0.00.BSP.semaphore=
STMicroelectronics.X-CUBE-AI.10.0.00.BSP.solution=USART6
STMicroelectronics.X-CUBE-AI.10.0.0_SwParameter=ApplicationCcDeviceJjApplication\:SystemPerformance;XAaCUBEAaAICcArtificialOoIntelligenceJjCore\:true;
USART2.BaudRate=1000000
USART2.IPParameters=VirtualMode,BaudRate
USART2.IPParameters=VirtualMode,BaudRate,OverSampling
USART2.OverSampling=UART_OVERSAMPLING_16
USART2.VirtualMode=VM_ASYNC
USART6.IPParameters=VirtualMode
USART6.VirtualMode=VM_ASYNC