//Cube串口中断自动生成代码部分不粘贴了。
//博主使用串口2.
//自定义一个结构体:
#define CmdLength 1024
static USART2_Rxbuffer USART2_Rx = {0};
static uint8_t Head_flag = FALSE;
typedef struct __USART2_Rxbuffer
{
uint32_t Head;
uint32_t Last_head;
uint32_t Tail;
uint8_t huart2_Rxbuffer[CmdLength];
uint8_t huart2_Rxflag;
uint8_t Rx_Firstflag;
uint32_t RxCounter;
} USART2_Rxbuffer;
HAL_StatusTypeDef Usart2Recieve(uint8_t *pData)
{
uint8_t i = 0;
/* first in , hang the interrupt. */
if (!USART2_Rx.Rx_Firstflag)
{
if (HAL_UART_Receive_IT(&huart2, &USART2_Rx.huart2_Rxbuffer[USART2_Rx.RxCounter++], 1) == HAL_OK)
{
USART2_Rx.Head = USART2_Rx.RxCounter - 1;
USART2_Rx.Rx_Firstflag = TRUE;
printf("USART2_Rx interrupt Open\r\n");
}
}
if (USART2_Rx.huart2_Rxflag == TRUE)
{
HAL_Delay(1);
USART2_Rx.huart2_Rxflag = FALSE;
Head_flag = TRUE;
if (USART2_Rx
STM32 HAL库串口不定字长接收(滚动数组接收)
最新推荐文章于 2024-03-16 15:57:50 发布