极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12784|回复: 9

求助ARDUINO通过串口控制其它设备

[复制链接]
发表于 2014-10-11 23:57:25 | 显示全部楼层 |阅读模式
/*
外部设备需要接收到以下代码命令才开始动作
7E 10 06 0F 00 01 01 FF D9 EF------16进制
(126 16 6 15 0 1 1 255 217  239------10进制)
*/
int flag=0;
void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);  
}

void loop()
{
  if(digitalRead(2)==0)
  {
  if(flag==0)
    {
    Serial.print(126,HEX);
    Serial.print(16,HEX);
    Serial.print(6,HEX);
    Serial.print(15,HEX);
    Serial.print(0,HEX);
    Serial.print(1,HEX);
    Serial.print(1,HEX);
    Serial.print(255,HEX);
    Serial.print(217,HEX);
    Serial.print(239,HEX);
     flag=1;
    }
  }
  else
  {
    flag=0;
  }
}
其它设备怎么不是接收到的7E 10 06 0F 00 01 01 FF D9 EF这个代码啊,是乱码,大侠们这种代码一般是通过怎么发送的
回复

使用道具 举报

发表于 2014-10-12 01:32:26 | 显示全部楼层
我想, 你應該是用希望發出 一個值為 7F 的 byte, 而不是 "7F" 吧.
先看看 Serial.print 跟 Serial.write 的分別吧.

如果還是不行, 再看看 baud rate 是否都是 9600.
回复 支持 反对

使用道具 举报

发表于 2014-10-12 11:51:34 | 显示全部楼层
http://www.arduino.cc/en/Serial/Write

.................................
const byte mybuf[] = {0x7E,0x10,0x06,0x0F,0x00,0x01,0x01,0xFF,0xD9,0xEF};

...................
Serial.write(mybuf,sizeof(mybuf) / sizeof(mybuf[0]));
回复 支持 反对

使用道具 举报

发表于 2014-10-12 12:20:35 | 显示全部楼层
是不是需要一个ttl转rs232?
回复 支持 反对

使用道具 举报

发表于 2014-10-13 10:38:14 | 显示全部楼层
jikecyatmcn 发表于 2014-10-12 12:20
是不是需要一个ttl转rs232?

用的是TTL串口
回复 支持 反对

使用道具 举报

发表于 2014-10-13 11:27:06 | 显示全部楼层
“其它设备怎么不是接收到的7E 10 06 0F 00 01 01 FF D9 EF这个代码啊,是乱码,大侠们这种代码一般是通过怎么发送的”

你怎么知道其它设备接收到的内容?是什么样的乱码?
如果你在电脑上用串口助手等工具查看收到的数据,你应该设定以16进制数据格式查看。
回复 支持 反对

使用道具 举报

发表于 2014-10-13 11:57:22 | 显示全部楼层
应该是进制不同,你发送的是十六进制,先用串口助手调试一下,另外,你是分次发送的,但是对方是怎么接收的?协议一致吗?建议先用串口调试助手解决显示问题,显示正常后,再解决协议问题。
回复 支持 反对

使用道具 举报

发表于 2014-11-30 22:10:14 | 显示全部楼层
3楼已经给你标准答案了
回复 支持 反对

使用道具 举报

发表于 2015-8-12 23:27:46 | 显示全部楼层
初学者学习
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 22:36 , Processed in 0.044378 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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