极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23159|回复: 6

[已解决]软串口如何以十六进制发送和接收命令

[复制链接]
发表于 2015-1-14 15:30:47 | 显示全部楼层 |阅读模式
本帖最后由 ken0137 于 2015-1-22 20:47 编辑

这个标题可能还要改改,主要是我有些概念还不是很清楚,求教。

这样的,Uno连接PC,Uno想要连接一个含有TTL的电流表,那么电流表上的TX,RX连接的是Uno上的RX(0)和TX(1)上吗?

2、看到有软串口这个东西,那么这个软串口和Uno板子上的RX(0)和TX(1)的区别在哪里?

3、Uno和电脑通信使用的是
=============================
Serial.println("XXX");

  while(Serial.available() > 0){
    comdata+=char(Serial.read());
    delay(2);
  }
=============================

那么电流表是使用什么样的通讯函数的?

我需要的是PC通过USB连接Uno,Uno连接电流表,

电脑发命令给Uno,Uno转发给电流表读取数据,电流表接收到命令后,以十六进制发送给Uno,Uno再将这些东西发给电脑,电脑上的软件来处理数据。(电流表接收和发送的都是十六进制的)

因此电流表的TX,RX要怎么连接Uno?其发送和接收命令应该是怎么样的呢?
//总结========================================
串口发送十六进制,
byte Readmv[6]={170,85,02,254,01,00};//measured value 对应的为AA 55 02 FE 01 00
DLSerial.write(&Readmv[0],6);
回复

使用道具 举报

发表于 2015-1-14 22:06:44 | 显示全部楼层
开发环境里的编程实例的软串口实例就能满足你的要求
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-14 22:28:59 | 显示全部楼层
wangweihe68 发表于 2015-1-14 22:06
开发环境里的编程实例的软串口实例就能满足你的要求

那么是不是这样调用
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
后面软串口的数据的读取和发送是不是和PC和板子之间的通讯一样的?
如果要使用十六进制通讯,要如何写?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-14 23:16:20 | 显示全部楼层
我这样写不知道哪里有问题,请各位大侠帮忙看一下
#include <SoftwareSerial.h>
SoftwareSerial DLSerial(10, 4); // 电流表数据通讯TTL RX, TX
String comdata = "";
void setup() {
  Serial.begin(115200);
  DLSerial.begin(115200);
}

void loop() {
  delay(1000);
  Serial.println("Goodnight moon!");
  DLSerial.println("AA 55 02 FE 01 00");
  delay(1000);
  while(DLSerial.available() > 0){
    comdata+=char(DLSerial.read());
    delay(2);
  }  
  if (comdata.length() > 0){  
    Serial.print("Command:");   
    Serial.println(comdata);      
  }
comdata="";
}
那个表头是十六进制通讯的,我不知道应该怎么写
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-16 10:58:42 | 显示全部楼层
再次顶起~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2015-1-18 23:30:56 | 显示全部楼层
ken0137 发表于 2015-1-14 23:16
我这样写不知道哪里有问题,请各位大侠帮忙看一下
#include
SoftwareSerial DLSerial(10, 4); // 电流表 ...

char[] cmd=(AA,55,02,FE,01,00);
把命令定义成char型数组
回复 支持 反对

使用道具 举报

发表于 2015-1-18 23:32:29 | 显示全部楼层
不要用println 会自动加个 \n 的,用print
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-18 17:19 , Processed in 0.062076 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表