ZW101模块
·

根据手册,通过串口发送指令包,进行功能实现。通过应答包进行交互。

代码
// 在AutoIdentify中使用
uint8_t AutoIdentify(void)
{
Serial2_Printf("AutoIdentify Start\r\n");
ZW101_SendPacket(AutoIdentify_Code, 17);
uint8_t flag=0;
uint32_t timeout = 0;
uint8_t result = 0; //0 初始 1 成功 2 错误
while(timeout < 3000)
{
if(Serial_GetRxFlag())
{
DebugPrintPacket(Serial_RxPacket, 17); // 使用调试函数
uint8_t byte9 = Serial_RxPacket[9];
uint8_t byte10 = Serial_RxPacket[10];
if(byte9 == 0x00 && byte10 == 0x00 && flag==0)
{
flag=1;
Serial2_Printf("Key Bytes - 9:%02X 10:%02X\r\n", byte9, byte10);
Serial2_Printf("Status Packet1\r\n");
}
else if(byte9 == 0x00 && byte10 == 0x01 && flag==1)
{
flag=2;
Serial2_Printf("Key Bytes - 9:%02X 10:%02X\r\n", byte9, byte10);
Serial2_Printf("Status Packet2\r\n");
}
else if(byte9 == 0x00 && byte10 == 0x05 && flag==2)
{
Serial2_Printf("Key Bytes - 9:%02X 10:%02X\r\n", byte9, byte10);
Serial2_Printf("Status Packet3\r\n");
result = 1;
break;
}
else if(byte9 == 0x09 && byte10 == 0x05 && flag==2)
{
Serial2_Printf("Kedy Bytes - 9:%02X 10:%02X\r\n", byte9, byte10);
Serial2_Printf("Status Packet3\r\n");
result = 2;
break;
}
else
{
//flag = 0;
Serial2_Printf("Unexpected Packet for flag=%d\r\n", flag);
result = 2;
break;
}
}
timeout++;
Delay_ms(1);
}
if(timeout >= 3000)
{
Serial2_Printf("AutoIdentify Timeout\r\n");
result =2; // 超时错误码
}
GPIO_ResetBits(GPIOB, GPIO_Pin_3);
return result;
}
更多推荐



所有评论(0)