stm32不定长数据接收,不管多少位,接受帧头帧尾

uint8_t TX_Packet[12]={0x55,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0a};//串口2发送
uint8_t RX_Packet[256]={0x00,0x00,0x00,0x00,0x00,0x00};//串口2接收
uint8_t RX_Packet2[256]={0x00,0x00,0x00,0x00,0x00,0x00};//串口2接收
uint8_t RX_bit;
int RX_num=0;//接收计数
int absd;
int b,c,d;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance==USART3)
	{
				RX_Packet[RX_num]=RX_bit;
				RX_num++;
		  if(RX_Packet[0]==0xAA){
			absd=2;
		  if(RX_Packet[RX_num-1]==0xBB){
				absd=1;
				if(c>RX_num){
					for(d=0;d<c;d++){
					  RX_Packet2[d]=0;
					}
				}
					for(char i=0;i<RX_num;i++){
						b++;
						RX_Packet2[i]=RX_Packet[i];
						RX_Packet[i]=0;
			   	}
					c=b;
					b=0;
					RX_num=0;
			}
		}
		HAL_UART_Receive_IT(&huart3, &RX_bit, 1);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值