stm32usart+中断接收定长数据

文章目录

  • 前言
  • 一、cubemx的配置
  • 二、代码编写
    • 1.主函数
    • 2. it.c


前言

中断接收固定的数据值。


一、cubemx的配置

开启USART1
stm32usart+中断接收定长数据_第1张图片

打开NVIC中断

stm32usart+中断接收定长数据_第2张图片

二、代码编写

1.主函数

变量定义

#define RxBuf_SIZE_1	3	//USART1接收缓冲区大小
#define	MainBuf_SIZE_1	3//USART1主缓冲区大小

uint8_t	RxBuf_1[RxBuf_SIZE_1];
uint8_t	MainBuf_1[MainBuf_SIZE_1];

初始化:

HAL_UART_Receive_IT(&huart1, (uint8_t *) RxBuf_1, 3);	

2. it.c

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if (huart->Instance == USART1)
	{
		memcpy(MainBuf_1, RxBuf_1, 3);	//将接收缓冲区的数据复制到主缓冲区	
	}	
	HAL_UART_Receive_IT(&huart1, (uint8_t *) RxBuf_1, 3);	
}

it.c里面有一句中断回调函数。
回调函数写在后面。


你可能感兴趣的:(stm32,嵌入式硬件,单片机)