[求助]软串口以十六进制发送和接收命令
本帖最后由 ken0137 于 2015-1-16 09:06 编辑现在使用软串口向电流表头以十六进制发送命令“AA 55 02 FE 01 00 ” ,并且需要能够得到十六进制的返回值并转发给PC端,这个十六进制的发送和接收应该如何写呢?求教大神
我自己写了一段
#include <SoftwareSerial.h>
SoftwareSerial DLSerial(10, 4); // 电流表数据通讯TTL RX, TX
byte shuchu={170,85,02,254,01,00};
//char shuchu={0xAA,0x55,0x02,0xFE,0x01,0x00};
String comdata = "";
void setup() {
Serial.begin(115200);
DLSerial.begin(115200);
}
void loop() {
delay(2000);
Serial.println("Goodnight moon!");
//DLSerial.println("AA 55 02 FE 01 00");
DLSerial.write(&shuchu,6);
delay(1000);
while(DLSerial.available() > 0){
comdata+=char(DLSerial.read());
delay(2);
}
if(comdata.length() > 0) //如果comdata接收到卡号,则读出卡号
{
// Serial.println(comdata);
for(int i=0;i<comdata.length();i++){
Serial.print("comdata[");
Serial.print(i,DEC);
Serial.print("]=");
Serial.println(comdata,HEX);
}
}
comdata="";
}
发送是AA 55 02 FE 01 00 ,接收应该是AA 55 04 F6 DE 01 01 D9
但是返回不对,显示为
comdata=FFFFFFAA
comdata=55
comdata=FFFFFF82
comdata=FFFFFFFB
comdata=FFFFFFD8
comdata=FFFFFF81
comdata=FFFFFFC0
comdata=FFFFFFFD
如果接收这里使用Serial.println(comdata);
则返回的是乱码,例如
Goodnight moon!
誙傱�佊
Goodnight moon!
?鲮�
void loop()
{
while(Serial.available()>0){
Serial.readBytes(serialin,8);
delay(100);
for(a=0;a<7;a++)
{
Serial.write(serialin);
}
delay(100);
Serial.print(serialin);
}
c = serialin;
switch (c){
case 81:
c = '0';
digitalWrite(led1, HIGH);
delay(100);
digitalWrite(led1, LOW);
delay(100);
Serial.println("Hi");
break;
case 82:
c = '0';
digitalWrite(led3, HIGH);
delay(100);
digitalWrite(led3, LOW);
delay(100);
break;
case 83:
c = '0';
digitalWrite(led3, HIGH);
delay(100);
digitalWrite(led3, LOW)
delay(100)
break;
case 84:
c = '0';
digitalWrite(led4, HIGH);
delay(100);
digitalWrite(led4, LOW);
delay(100);
break;
}
}
你看看能不能帮到你 xia0chun 发表于 2015-1-15 08:50 static/image/common/back.gif
void loop()
{
while(Serial.available()>0){
这回答和问题有关联么?
软串口,起码也得
#include <SoftwareSerial.h>
SoftwareSerial DLSerial(10, 4); // 电流表数据通讯TTL RX, TX
开始的吧 ken0137 发表于 2015-1-15 09:52 static/image/common/back.gif
这回答和问题有关联么?
软串口,起码也得
#include
Sorry 没看清楚 自己顶起~~~~ 软串口是需要 listen()的
页:
[1]