初级会员

- 积分
- 81
- 金钱
- 81
- 注册时间
- 2020-3-6
- 在线时间
- 26 小时
|
1金钱
我想定义一个 0X78 +8位数字+8位数字+8位数字+8位数字+17位数字+0x72 这样结构的协议
单片机接受上位机传过来的数值 并将收到的数值又传回给单片机
在单片机代码中断块中模仿写了下面一段代码 但在上位机中接受的数据和发过去的数据不一致
想问一下这段代码中是不是没有对数字的接受 只有对帧头帧尾做了处理
if(USART_GetITStatus(PC_USART,USART_IT_RXNE) != RESET)//½óêÕÖD¶Ï
{
USART_ClearITPendingBit(PC_USART,USART_IT_RXNE);//Çå3yêy¾YÖD¶Ï
Res= USART_ReceiveData(PC_USART);//¶á衽óêÕμ½μÄêy¾Y
}
switch(Read_status)
{
case 0x00:
if(Res == 0x78)
{
Read_Head = 0x00;
RecData[Read_Head] = Res;
Read_Head++;
Read_Time = 20;
Read_status = 0x01;
}
else
{
}
break;
case 0x01:
RecData[Read_Head] = Res;
Read_Head++;
if(Read_Head >= 3)
{
if(RecData[Read_Head-1] == 0x72)
{
Read_Tail = Read_Head;
Read_Head = 0;
Read_Time = 0;
Read_status = 0;
Read_ok = 1;
}
}
break;
default:
break;
}
|
|