android 串口16进制,串口读取16进制-Arduino中文社区 - Powered by Discuz!
!= buf) {//不等char buf2[8] = {0x00, 0x06, 0x0F, 0xA0, 0x00, 0x01, 0x4A, 0xED};send2UART(buf2, 8);break;}}//相等}}void send2UART(const char *p, size_t len) {Serial.write(p, len);}/*串口数据接受进程*/void doUartTi
!= buf) {
//不等
char buf2[8] = {0x00, 0x06, 0x0F, 0xA0, 0x00, 0x01, 0x4A, 0xED};
send2UART(buf2, 8);
break;
}
}
//相等
}
}
void send2UART(const char *p, size_t len) {
Serial.write(p, len);
}
/*
串口数据接受进程
*/
void doUartTick()
{
if (Serial.available())
{ //读取串口数据
//每次读取一个字节的数据存储在这个buff中
uart_Receive_Buff [ uart_Receive_Index ++ ] = Serial.read();
//记录下读取这个数据的时间点
preUartTime = millis();
//判断读取到的数据长度是否超过设定的记录长度,超过长度时间点往前200ms 立即执行分析函数
if (uart_Receive_Index >= MAX_PACKETSIZE - 1) {
uart_Receive_Index = MAX_PACKETSIZE - 2;
preUartTime = preUartTime - 200;
}
}
//判断收到的最后一个字节后超过100ms开始执行分析函数
if (uart_Receive_Index > 0 && (millis() - preUartTime >= 100))
{ //处理串口数据
//把buff最后一个字节设为0,在字符串处理中很有用
uart_Receive_Buff [ uart_Receive_Index ] = 0x00;
Serial.flush();
//执行串口数据处理函数
parseUartPackage(uart_Receive_Buff, uart_Receive_Index);
uart_Receive_Index = 0;
}
}
void setup() {
Serial.begin(9600);
char buf[8] = {0x00, 0x06, 0x0F, 0xA0, 0x00, 0x01, 0x4A, 0xED};
send2UART(buf, 8);
}
void loop()
{
//调用串口数据处理进程
doUartTick();
}[/mw_shl_code]
更多推荐
所有评论(0)