一、开发环境:STM32CubeIDE V1.9
二、使用函数: HAL_UARTEx_ReceiveToIdle_IT(huart, pData, Size);
huart:定义串口,一般填写 &huartx(x为串口号,取1、2、3……);
pData:接收数据存放的首地址,一般直接填写一维数组名;
Size:定义接收的字节数量,直接字节数。
三、回调函数:HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size);
huart:回调串口号;
Size:实际接收的字节函数。
四、示例:从串口1接收的不定长数据存放在数组array[50]中;
初始化过程写入:HAL_UARTEx_ReceiveToIdle_IT(&huart1, array, 50);
重定义回调函数:
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
if(huart == &huart1)
{
//此处填写数据处理函数
HAL_UARTEx_ReceiveToIdle_IT(&huart1, array, 50) ;
}
}
说明:
初始化打开串口接收中断,当串口接收满50字节,或串口产生空闲时,会执行回调函数。回调函数里判断串口后正确后,执行对应的功能函数,并再次开启串口接收中断。



