我收到“MX_USART2_UART_Init”未定义引用的错误
这是我的主要代码
#include "main.h"
#include "ai_platform.h"
#include "ai_datatypes_defines.h"
#include "network_1705163992743.h"
#include "network_1705163992743_data.h"
#include "network_1705163992743_data_params.h"
#include "network_1705163992743_config.h"
#include "app_x-cube-ai.h"
#include <stdio.h>
void SystemClock_Config(void);
...
static void MX_USART2_UART_Init(void);
...
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
static void MX_USART2_UART_Init(void)
{
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart2) != HAL_OK)
{
Error_Handler();
}
}
和我的 app_x-cube-ai.c
MX_UARTx_Init();是什么给了我错误
void MX_X_CUBE_AI_Init(void)
{
MX_UARTx_Init();
aiValidationInit();
/* USER CODE BEGIN 5 */
/* USER CODE END 5 */
}
在 bsp_ai.h 中对 main 中的 MX_USART2_UART_Init 的引用
#define MX_UARTx_Init MX_USART2_UART_Init
您可能更改了 Cube 生成的启动和配置文件的文件结构。
由于
static void MX_USART2_UART_Init(void)
是 static
它必须在您所说的同一个文件(更准确地说是编译单元)中定义。
您可以从
app_x-cube-ai.c
调用此函数,并在 main.c
文件中定义它。它不会工作,因为 MX_USART2_UART_Init
没有外部链接。
您可以:
static