[Upload Code]:add CAN code

This commit is contained in:
Brin 2025-05-29 11:11:27 +08:00
parent d3880160b4
commit ec97a41bf9
27 changed files with 6710 additions and 9397 deletions

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

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,7 @@
"app_x-cube-ai.h": "c",
"usart.h": "c",
"main.h": "c",
"mymattress_ctrl.h": "c"
"mymattress_ctrl.h": "c",
"can.h": "c"
}
}

60
CAN/XM-01/Core/Inc/can.h Normal file
View File

@ -0,0 +1,60 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file can.h
* @brief This file contains all the function prototypes for
* the can.c file
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __CAN_H__
#define __CAN_H__
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
extern CAN_HandleTypeDef hcan1;
/* USER CODE BEGIN Private defines */
#define CAN_RxExtId 0x1800D8D0
#define CAN_TxExtId 0x1800D0D8
/* USER CODE END Private defines */
void MX_CAN1_Init(void);
/* USER CODE BEGIN Prototypes */
void CAN_Filter_Init(void); // 过滤器配置函数
uint8_t CAN_Send_Msg(uint8_t *msg, uint8_t len); // 数据发送函数
extern CAN_TxHeaderTypeDef TxHeader; // 发送
extern CAN_RxHeaderTypeDef RxHeader; // 接收
extern uint8_t RxData[8]; // 数据接收数组
/* USER CODE END Prototypes */
#ifdef __cplusplus
}
#endif
#endif /* __CAN_H__ */

View File

@ -52,6 +52,11 @@ extern "C" {
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
extern uint8_t CAN_RX_EVENT ;
extern uint8_t CAN_TX_EVENT ;
extern uint8_t CAN_RX_BUFFER[8];
extern uint8_t CAN_TX_BUFFER[8];
extern uint16_t sensor_uart_rx_len;
extern uint8_t sensor_uart_rx_buffer[SENSOR_RX_BUFFER_SIZE];
/* USER CODE END EM */

View File

@ -39,7 +39,7 @@
/* #define HAL_CRYP_MODULE_ENABLED */
/* #define HAL_ADC_MODULE_ENABLED */
/* #define HAL_CAN_MODULE_ENABLED */
#define HAL_CAN_MODULE_ENABLED
/* #define HAL_CRC_MODULE_ENABLED */
/* #define HAL_CAN_LEGACY_MODULE_ENABLED */
/* #define HAL_DAC_MODULE_ENABLED */

View File

@ -52,6 +52,7 @@ void BusFault_Handler(void);
void UsageFault_Handler(void);
void DebugMon_Handler(void);
void DMA1_Stream5_IRQHandler(void);
void CAN1_RX0_IRQHandler(void);
void USART2_IRQHandler(void);
/* USER CODE BEGIN EFP */

206
CAN/XM-01/Core/Src/can.c Normal file
View File

@ -0,0 +1,206 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file can.c
* @brief This file provides code for the configuration
* of the CAN instances.
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "can.h"
/* USER CODE BEGIN 0 */
CAN_TxHeaderTypeDef TxHeader; // 发送
CAN_RxHeaderTypeDef RxHeader; // 接收
uint8_t RxData[8] = {0}; // 数据接收数组can的数据帧只有8帧
/* USER CODE END 0 */
CAN_HandleTypeDef hcan1;
/* CAN1 init function */
void MX_CAN1_Init(void)
{
/* USER CODE BEGIN CAN1_Init 0 */
/* USER CODE END CAN1_Init 0 */
/* USER CODE BEGIN CAN1_Init 1 */
/* USER CODE END CAN1_Init 1 */
hcan1.Instance = CAN1;
hcan1.Init.Prescaler = 21;
hcan1.Init.Mode = CAN_MODE_NORMAL;
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan1.Init.TimeSeg1 = CAN_BS1_2TQ;
hcan1.Init.TimeSeg2 = CAN_BS2_1TQ;
hcan1.Init.TimeTriggeredMode = DISABLE;
hcan1.Init.AutoBusOff = DISABLE;
hcan1.Init.AutoWakeUp = DISABLE;
hcan1.Init.AutoRetransmission = DISABLE;
hcan1.Init.ReceiveFifoLocked = DISABLE;
hcan1.Init.TransmitFifoPriority = DISABLE;
if (HAL_CAN_Init(&hcan1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN CAN1_Init 2 */
/* USER CODE END CAN1_Init 2 */
}
void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(canHandle->Instance==CAN1)
{
/* USER CODE BEGIN CAN1_MspInit 0 */
/* USER CODE END CAN1_MspInit 0 */
/* CAN1 clock enable */
__HAL_RCC_CAN1_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/**CAN1 GPIO Configuration
PB8 ------> CAN1_RX
PB9 ------> CAN1_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* CAN1 interrupt Init */
HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);
/* USER CODE BEGIN CAN1_MspInit 1 */
/* USER CODE END CAN1_MspInit 1 */
}
}
void HAL_CAN_MspDeInit(CAN_HandleTypeDef* canHandle)
{
if(canHandle->Instance==CAN1)
{
/* USER CODE BEGIN CAN1_MspDeInit 0 */
/* USER CODE END CAN1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_CAN1_CLK_DISABLE();
/**CAN1 GPIO Configuration
PB8 ------> CAN1_RX
PB9 ------> CAN1_TX
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_8|GPIO_PIN_9);
/* CAN1 interrupt Deinit */
HAL_NVIC_DisableIRQ(CAN1_RX0_IRQn);
/* USER CODE BEGIN CAN1_MspDeInit 1 */
/* USER CODE END CAN1_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */
/*CAN过滤器初始化*/
void CAN_Filter_Init(void)
{
// 不进行过滤
CAN_FilterTypeDef sFilterConfig;
sFilterConfig.FilterBank = 0; /* 过滤器组0 */
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK; /* 屏蔽位模式 */
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; /* 32位。*/
sFilterConfig.FilterIdHigh = 0; // /* 要过滤的ID高位 */ (((uint32_t)CAN_RxExtId << 3) & 0xFFFF0000) >> 16;
sFilterConfig.FilterIdLow = 0; // /* 要过滤的ID低位 */ (((uint32_t)CAN_RxExtId << 3) | CAN_ID_EXT | CAN_RTR_DATA) & 0xFFFF;
sFilterConfig.FilterMaskIdHigh = 0; // /* 过滤器高16位每位必须匹配 */ 0xFFFF;
sFilterConfig.FilterMaskIdLow = 0; // /* 过滤器低16位每位必须匹配 */ 0xFFFF;
sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0; /* 过滤器被关联到FIFO 0 */
sFilterConfig.FilterActivation = ENABLE; /* 使能过滤器 */
sFilterConfig.SlaveStartFilterBank = 14;
if (HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig) != HAL_OK)
{
/* Filter configuration Error */
Error_Handler();
}
if (HAL_CAN_Start(&hcan1) != HAL_OK)
{
/* Start Error */
Error_Handler();
}
if (HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK)
{
/* Start Error */
Error_Handler();
}
}
/*CAN发送数据入口参数为要发送的数组指针数据长度返回0代表发送数据无异常返回1代表传输异常*/
uint8_t CAN_Send_Msg(uint8_t *msg, uint8_t len)
{
uint8_t i = 0;
uint8_t message[8];
uint32_t TxMailbox;
CAN_TxHeaderTypeDef CAN_TxHeader;
// 设置发送参数
CAN_TxHeader.StdId = 0x12; // 标准标识符(12bit)
CAN_TxHeader.ExtId = 0x12; // 扩展标识符(29bit)
CAN_TxHeader.IDE = CAN_ID_STD; // 使用标准帧
CAN_TxHeader.RTR = CAN_RTR_DATA; // 数据帧
CAN_TxHeader.DLC = len; // 发送长度
CAN_TxHeader.TransmitGlobalTime = DISABLE;
// 装载数据
for (i = 0; i < len; i++)
{
message[i] = msg[i];
}
// 发送CAN消息
if (HAL_CAN_AddTxMessage(&hcan1, &CAN_TxHeader, message, &TxMailbox) != HAL_OK)
{
return 1;
}
while (HAL_CAN_GetTxMailboxesFreeLevel(&hcan1) != 3)
{
}
return 0;
}
/*CAN接收中断函数*/
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *CanNum)
{
uint32_t i;
CAN_RX_EVENT = 1; // 接收标志位
HAL_CAN_GetRxMessage(&hcan1, CAN_RX_FIFO0, &RxHeader, RxData);
for (i = 0; i < RxHeader.DLC; i++)
CAN_RX_BUFFER[i] = RxData[i]; // 用RxBuf转存RxData的数据
}
/* USER CODE END 1 */

View File

@ -18,6 +18,7 @@
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "can.h"
#include "dma.h"
#include "usart.h"
#include "gpio.h"
@ -46,6 +47,12 @@
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
// CAN
uint8_t CAN_RX_EVENT = 0;
uint8_t CAN_TX_EVENT = 0;
uint8_t CAN_RX_BUFFER[8] = {0};
uint8_t CAN_TX_BUFFER[8] = {0X01, 0X02, 0X03, 0X04, 0X05, 0X06, 0X07, 0X08};
// UART
uint16_t sensor_uart_rx_len = 0;
uint8_t sensor_uart_rx_buffer[SENSOR_RX_BUFFER_SIZE]; // DMA搬运目标缓存
/* USER CODE END PV */
@ -92,18 +99,46 @@ int main(void)
MX_GPIO_Init();
MX_DMA_Init();
MX_USART2_UART_Init();
MX_CAN1_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
CAN_Filter_Init(); // 过滤器初始化
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/**/
if (CAN_RX_EVENT) // 如果接收标志位被置1则开展逻辑判断
{
rt_kprintf("Receive Succeed !\r\n");
// 接收数据执行逻辑判断,根据判断结果设置发送内容
if (CAN_RX_BUFFER[2] == 0xAA && CAN_RX_BUFFER[3] == 0xBB)
CAN_TX_BUFFER[2] = 0x01;
else if (CAN_RX_BUFFER[2] == 0xAA && CAN_RX_BUFFER[3] == 0xCC)
CAN_TX_BUFFER[3] = 0x01;
else if (CAN_RX_BUFFER[2] == 0xAA && CAN_RX_BUFFER[3] == 0xDD)
CAN_TX_BUFFER[4] = 0x01;
else
CAN_TX_BUFFER[2] = 0x00, CAN_TX_BUFFER[3] = 0x00, CAN_TX_BUFFER[4] = 0x00;
CAN_TX_BUFFER[2] = 0xAA;
CAN_TX_EVENT = CAN_Send_Msg(CAN_TX_BUFFER, 8); // 发送数据,根据返回值判定发送是否异常
if (CAN_TX_EVENT)
rt_kprintf("Send failed ,please check your data !\r\n"); // 返回1代表数据发送异常
else
rt_kprintf("Send completed !\r\n");
// 清空接收、发送数组保留Rxbuf内容
rt_memset(RxData, 0, sizeof(RxData));
rt_memset(CAN_TX_BUFFER, 0, sizeof(CAN_TX_BUFFER));
rt_thread_mdelay(50);
CAN_RX_EVENT = 0; // 标志位置0等待下一次中断
}
// CAN_Send_Msg(CAN_TX_BUFFER, 8);
HAL_GPIO_TogglePin(LED_B_GPIO_Port, LED_B_Pin);
rt_thread_mdelay(500);
/* USER CODE END WHILE */
@ -180,7 +215,8 @@ void hex_dump(const void *data, size_t size)
else
rt_kprintf(" ");
if (j == 7) rt_kprintf(" "); // 每8字节后额外空格
if (j == 7)
rt_kprintf(" "); // 每8字节后额外空格
}
rt_kprintf(" |");

View File

@ -196,12 +196,14 @@ static void ai_thread_entry(void *parameter)
rt_uint32_t e;
while (1)
{
// if (model.status == AI_STATUS_IDLE)
// AiModel((uint8_t *)test);
#if 1
if (model.status == AI_STATUS_IDLE)
AiModel((uint8_t *)test);
#else
if (model.status == AI_STATUS_IDLE &&
rt_event_recv(&data_ready_event, 0x01, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, RT_WAITING_FOREVER, &e) == RT_EOK)
AiModel((uint8_t *)Origin_MattressData);
#endif
rt_thread_mdelay(1000);
}
}

View File

@ -56,6 +56,7 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
extern CAN_HandleTypeDef hcan1;
extern DMA_HandleTypeDef hdma_usart2_rx;
extern UART_HandleTypeDef huart2;
/* USER CODE BEGIN EV */
@ -160,6 +161,20 @@ void DMA1_Stream5_IRQHandler(void)
/* USER CODE END DMA1_Stream5_IRQn 1 */
}
/**
* @brief This function handles CAN1 RX0 interrupts.
*/
void CAN1_RX0_IRQHandler(void)
{
/* USER CODE BEGIN CAN1_RX0_IRQn 0 */
/* USER CODE END CAN1_RX0_IRQn 0 */
HAL_CAN_IRQHandler(&hcan1);
/* USER CODE BEGIN CAN1_RX0_IRQn 1 */
/* USER CODE END CAN1_RX0_IRQn 1 */
}
/**
* @brief This function handles USART2 global interrupt.
*/

File diff suppressed because one or more lines are too long

View File

@ -140,7 +140,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>JL2CM3</Key>
<Name>-U59800869 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F405RGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
<Name>-U59800869 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F405RGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@ -203,6 +203,12 @@
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<SystemViewers>
<Entry>
<Name>System Viewer\CAN1</Name>
<WinId>35905</WinId>
</Entry>
</SystemViewers>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>1</EnableFlashSeq>
@ -306,6 +312,18 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/can.c</PathWithFileName>
<FilenameWithoutPath>can.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/dma.c</PathWithFileName>
<FilenameWithoutPath>dma.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
@ -313,7 +331,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -325,7 +343,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>9</FileNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -337,7 +355,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>10</FileNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -357,7 +375,19 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>11</FileNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_can.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -369,7 +399,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>12</FileNumber>
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -381,7 +411,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>13</FileNumber>
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -393,7 +423,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>14</FileNumber>
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -405,7 +435,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>15</FileNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -417,7 +447,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>16</FileNumber>
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -429,7 +459,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>17</FileNumber>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -441,7 +471,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>18</FileNumber>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -453,7 +483,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>19</FileNumber>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -465,7 +495,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>20</FileNumber>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -477,7 +507,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>21</FileNumber>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -489,7 +519,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>22</FileNumber>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -501,7 +531,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>23</FileNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -513,7 +543,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>24</FileNumber>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -533,7 +563,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>25</FileNumber>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -553,7 +583,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>26</FileNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -565,7 +595,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>27</FileNumber>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -585,7 +615,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>28</FileNumber>
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -597,7 +627,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>29</FileNumber>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -609,7 +639,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>30</FileNumber>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -621,7 +651,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>31</FileNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -633,7 +663,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>32</FileNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -645,7 +675,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>33</FileNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -657,7 +687,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>34</FileNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -669,7 +699,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>35</FileNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -681,7 +711,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>36</FileNumber>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -693,7 +723,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>37</FileNumber>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -713,7 +743,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>38</FileNumber>
<FileNumber>40</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -733,7 +763,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>39</FileNumber>
<FileNumber>41</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -745,14 +775,6 @@
</File>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>
</Group>
<Group>
<GroupName>Middlewares/RT-Thread/RTOS/shell</GroupName>
<tvExp>0</tvExp>
@ -760,8 +782,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>40</FileNumber>
<GroupNumber>9</GroupNumber>
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -772,8 +794,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>41</FileNumber>
<GroupNumber>9</GroupNumber>
<FileNumber>43</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -784,8 +806,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>42</FileNumber>
<GroupNumber>9</GroupNumber>
<FileNumber>44</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -796,8 +818,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>43</FileNumber>
<GroupNumber>9</GroupNumber>
<FileNumber>45</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -808,8 +830,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>44</FileNumber>
<GroupNumber>9</GroupNumber>
<FileNumber>46</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -828,8 +850,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>45</FileNumber>
<GroupNumber>10</GroupNumber>
<FileNumber>47</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -840,8 +862,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>46</FileNumber>
<GroupNumber>10</GroupNumber>
<FileNumber>48</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -860,8 +882,8 @@
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>47</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>49</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -872,8 +894,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>48</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>50</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -884,8 +906,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>49</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>51</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -896,8 +918,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>50</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>52</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -908,8 +930,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>51</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>53</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -920,8 +942,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>52</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>54</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -932,8 +954,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>53</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>55</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -944,8 +966,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>54</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>56</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -956,8 +978,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>55</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>57</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -968,8 +990,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>56</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>58</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -980,8 +1002,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>57</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>59</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -992,8 +1014,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>58</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>60</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1004,8 +1026,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>59</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>61</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1016,8 +1038,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>60</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>62</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1028,8 +1050,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>61</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>63</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1040,8 +1062,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>62</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>64</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1052,8 +1074,8 @@
<bShared>0</bShared>
</File>
<File>
<GroupNumber>12</GroupNumber>
<FileNumber>63</FileNumber>
<GroupNumber>11</GroupNumber>
<FileNumber>65</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1065,4 +1087,12 @@
</File>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>
</Group>
</ProjectOpt>

View File

@ -360,7 +360,7 @@
</VariousControls>
</Aads>
<LDads>
<umfTarg>0</umfTarg>
<umfTarg>1</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
@ -417,6 +417,62 @@
<FileType>1</FileType>
<FilePath>../Core/Src/gpio.c</FilePath>
</File>
<File>
<FileName>can.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/can.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
<File>
<FileName>dma.c</FileName>
<FileType>1</FileType>
@ -544,6 +600,62 @@
<Group>
<GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName>
<Files>
<File>
<FileName>stm32f4xx_hal_can.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
<File>
<FileName>stm32f4xx_hal_rcc.c</FileName>
<FileType>1</FileType>
@ -1522,9 +1634,6 @@
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
<Group>
<GroupName>Middlewares/RT-Thread/RTOS/shell</GroupName>
<GroupOption>
@ -3078,6 +3187,9 @@
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
</Groups>
</Target>
</Targets>

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
******************************************************************************
* @file model.c
* @author AST Embedded Analytics Research Platform
* @date 2025-05-27T09:59:02+0800
* @date 2025-05-29T10:15:11+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-27T09:59:02+0800"
#define AI_TOOLS_DATE_TIME "2025-05-29T10:15:11+0800"
#undef AI_TOOLS_COMPILE_TIME
#define AI_TOOLS_COMPILE_TIME __DATE__ " " __TIME__
@ -1110,7 +1110,7 @@ AI_NETWORK_OBJ_DECLARE(
11904, 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_20_output),
&conv2d_4_layer, 0x984da5cb, NULL)
&conv2d_4_layer, 0x80fcc2ec, NULL)
#else
@ -1130,7 +1130,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_20_output),
&conv2d_4_layer, 0x984da5cb, NULL)
&conv2d_4_layer, 0x80fcc2ec, NULL)
#endif /*(AI_TOOLS_API_VERSION < AI_TOOLS_API_VERSION_1_5)*/
@ -1335,7 +1335,7 @@ ai_bool ai_model_get_info(
.params = AI_STRUCT_INIT,
.activations = AI_STRUCT_INIT,
.n_nodes = 0,
.signature = 0x984da5cb,
.signature = 0x80fcc2ec,
};
if (!ai_platform_api_get_network_report(network, &r)) return false;
@ -1383,7 +1383,7 @@ ai_bool ai_model_get_report(
.map_weights = AI_STRUCT_INIT,
.map_activations = AI_STRUCT_INIT,
.n_nodes = 0,
.signature = 0x984da5cb,
.signature = 0x80fcc2ec,
};
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-27T09:59:02+0800
* @date 2025-05-29T10:15:11+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-27T09:59:02+0800
* @date 2025-05-29T10:15:11+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-27T09:59:02+0800
* @date 2025-05-29T10:15:11+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-27T09:59:02+0800
* @date 2025-05-29T10:15:11+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-27T09:59:02+0800
* @date 2025-05-29T10:15:11+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-27T09:59:02+0800
* @date 2025-05-29T10:15:11+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-27 09:59:04
Parameters : generate --target stm32f4 --name model -m D:/Job_Work/Code/Z_Python/myEnv/model2.tflite --compression high --verbosity 1 -O ram --workspace C:/Users/admin/AppData/Local/Temp/mxAI_workspace92273236986890011865443067484422335 --output C:/Users/admin/.stm32cubemx/model_output
Created date : 2025-05-29 10:15:14
Parameters : generate --target stm32f4 --name model -m D:/Job_Work/Code/Z_Python/myEnv/model2.tflite --compression high --verbosity 1 -O ram --workspace C:/Users/admin/AppData/Local/Temp/mxAI_workspace7271294798310013877290066913389571 --output C:/Users/admin/.stm32cubemx/model_output
Exec/report summary (generate)
-------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
model file : D:\Job_Work\Code\Z_Python\myEnv\model2.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_workspace92273236986890011865443067484422335
workspace dir : C:\Users\admin\AppData\Local\Temp\mxAI_workspace7271294798310013877290066913389571
output dir : C:\Users\admin\.stm32cubemx\model_output
model_fmt : float
model_name : model2
model_hash : 0x02dd23f831c7bbf9c5b10eba7342e3d2
params # : 4,210 items (16.45 KiB)
-------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
input 1/1 : 'serving_default_input0', f32(1x260), 1.02 KBytes, activations
output 1/1 : 'nl_20', f32(1x2), 8 Bytes, activations
macc : 156,480
weights (ro) : 14,936 B (14.59 KiB) (1 segment) / -1,904(-11.3%) vs float model
activations (rw) : 11,904 B (11.62 KiB) (1 segment) *
ram (total) : 11,904 B (11.62 KiB) = 11,904 + 0 + 0
-------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
(*) 'input'/'output' buffers can be used from the activations buffer
Model name - model2

View File

@ -2,6 +2,13 @@
CAD.formats=
CAD.pinconfig=
CAD.provider=
CAN1.BS1=CAN_BS1_2TQ
CAN1.CalculateBaudRate=500000
CAN1.CalculateTimeBit=2000
CAN1.CalculateTimeQuantum=500.0
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,Mode,BS1
CAN1.Mode=CAN_MODE_NORMAL
CAN1.Prescaler=21
Dma.Request0=USART2_RX
Dma.RequestsNb=1
Dma.USART2_RX.0.Direction=DMA_PERIPH_TO_MEMORY
@ -19,22 +26,25 @@ GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
Mcu.CPN=STM32F405RGT6
Mcu.Family=STM32F4
Mcu.IP0=DMA
Mcu.IP1=NVIC
Mcu.IP2=RCC
Mcu.IP3=SYS
Mcu.IP4=USART2
Mcu.IP5=USART6
Mcu.IPNb=6
Mcu.IP0=CAN1
Mcu.IP1=DMA
Mcu.IP2=NVIC
Mcu.IP3=RCC
Mcu.IP4=SYS
Mcu.IP5=USART2
Mcu.IP6=USART6
Mcu.IPNb=7
Mcu.Name=STM32F405RGTx
Mcu.Package=LQFP64
Mcu.Pin0=PH0-OSC_IN
Mcu.Pin1=PH1-OSC_OUT
Mcu.Pin10=PA14
Mcu.Pin11=VP_SYS_VS_Systick
Mcu.Pin12=VP_STMicroelectronics.X-CUBE-AI_VS_ArtificialOoIntelligenceJjXAaCUBEAaAI_10.0.0
Mcu.Pin13=VP_STMicroelectronics.X-CUBE-AI_VS_DeviceJjApplication_10.0.0
Mcu.Pin14=VP_RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1
Mcu.Pin11=PB8
Mcu.Pin12=PB9
Mcu.Pin13=VP_SYS_VS_Systick
Mcu.Pin14=VP_STMicroelectronics.X-CUBE-AI_VS_ArtificialOoIntelligenceJjXAaCUBEAaAI_10.0.0
Mcu.Pin15=VP_STMicroelectronics.X-CUBE-AI_VS_DeviceJjApplication_10.0.0
Mcu.Pin16=VP_RealThread.X-CUBE-RT-Thread_Nano_VS_RTOSJjRTAaThread_4.1.1_4.1.1
Mcu.Pin2=PA2
Mcu.Pin3=PA3
Mcu.Pin4=PB0
@ -43,7 +53,7 @@ Mcu.Pin6=PB2
Mcu.Pin7=PC6
Mcu.Pin8=PC7
Mcu.Pin9=PA13
Mcu.PinsNb=15
Mcu.PinsNb=17
Mcu.ThirdParty0=RealThread.X-CUBE-RT-Thread_Nano.4.1.1
Mcu.ThirdParty1=STMicroelectronics.X-CUBE-AI.10.0.0
Mcu.ThirdPartyNb=2
@ -52,6 +62,7 @@ Mcu.UserName=STM32F405RGTx
MxCube.Version=6.14.1
MxDb.Version=DB.6.0.141
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.CAN1_RX0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true\:true
NVIC.DMA1_Stream5_IRQn=true\:0\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.ForceEnableDMAVector=true
@ -90,6 +101,12 @@ PB2.GPIO_Label=LED_R
PB2.Locked=true
PB2.PinState=GPIO_PIN_SET
PB2.Signal=GPIO_Output
PB8.Locked=true
PB8.Mode=CAN_Activate
PB8.Signal=CAN1_RX
PB9.Locked=true
PB9.Mode=CAN_Activate
PB9.Signal=CAN1_TX
PC6.Mode=Asynchronous
PC6.Signal=USART6_TX
PC7.Mode=Asynchronous
@ -165,7 +182,7 @@ 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,RT_USING_MUTEX,RT_USING_EVENT,RT_USING_MAILBOX,RT_USING_MESSAGEQUEUE
RealThread.X-CUBE-RT-Thread_Nano.4.1.1.IPParameters=RT_USING_CONSOLE,RT_USING_FINSH,RT_USING_MUTEX,RT_USING_EVENT,RT_USING_MAILBOX,RT_USING_MESSAGEQUEUE,RTAaThreadCcRTOSJjkernel,RTAaThreadCcRTOSJjshell,RTAaThreadCcRTOSJjlibcpu
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

View File

@ -64,6 +64,7 @@
| | 左翻置信率低 怀疑垫体问题 | |
| 2025-05-26 | CAN版本260点增加模型完成 | |
| 2025-05-27 | 串口部分处理增加完成,未验证 | |
| | CAN总线调试完成 可以通讯 | |
---