关于直流电机驱动板 Sabertooth 2x12A 的串口命令格式,求解...
本帖最后由 highplay86 于 2012-10-2 10:49 编辑int inByte;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
}
void loop()
{
//读取端口0,发送到端口1:
if(Serial.available())
{
inByte=Serial.read();
Serial1.print(inByte,BIN);
Serial.println(inByte,BIN);
}
}
还是这个程序,不过这次有大问题了...我近日买的一个 Sabertooth 2x12A 的直流电机驱动板,有四种控制模式,我目前需要用第三种模式,即Simplified Serial Mode ,这种模式支持串口控制信号,可以通过切换开关组合切换波特率,它的单字节型控制命令(即8位),不过我通过Serial.print输出的命令根本不是8位...而且默认输出的是ASCII码,即使改成二进制输出,一个数字就已经6位了,两个数字12位.......怎么搞呢...
第一行是输入"1"的返回结果,第二行是"2"的返回结果,第三行和第四行是"12"的返回结果...
按这样,我不可能把一个"123"的三位数作为驱动板的命令以八位的单字节形式发送...
高手啊.......不吝赐教.....
相关的驱动板的资料:
驱动板说明书
开关选择向导
产品对比介绍
快速开始指南 你是要把ASCII码1转成00000001,2转成00000010,3转成00000011……对吗
那简单,inByte - 0x30,这样就可以了
如果是要转分开传送的12,先把12 接收完,组合成12再转 test01 发表于 2012-10-2 02:08 static/image/common/back.gif
你是要把ASCII码1转成00000001,2转成00000010,3转成00000011……对吗
那简单,inByte - 0x30,这样就可以 ...
哦...我懂你的意思了,先进行逻辑运算对吧....嗯...有点思路了,谢了... 本帖最后由 highplay86 于 2012-10-2 10:50 编辑
这样好像还是有问题啊...记得以前的IDE版本有直接输出单字节的模式,比如说:
Serial1.print (cSpeedVal_Motor1, BYTE);
Serial1.print (cSpeedVal_Motor2, BYTE);
现在的1.01版本的IDE用Serial1.write解决输出单字节问题,不过这么输出好像还是不能控制这个驱动板...
说明书上关于这个串口控制的模式的命令格式说明如下...求解正确的命令编程格式.........
页:
[1]