极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 30059|回复: 13

Arduino UNO USB口通信的疑问

[复制链接]
发表于 2016-11-30 14:20:19 | 显示全部楼层 |阅读模式
拿703N做小车玩,涉及到无线路由器通过USB口与Arduino UNO通信的问题
网上的兄弟都说的很简单,插上路由器,看到/dev/ttyACM0 就可以通信了,我是怎么都搞不通

后来,简化环境,把Arduino UNO的0,1串口通过CH340(USB转串口)线连接到电脑,电脑识别为USB-SERIALCH340(COM10)
再把Arduino UNO通过USB线直接连接到电脑,电脑识别为 Arduino UNO (COM3)

然后在Arduino板子上写了个小代码,即读取串口数据,再转发回串口
void setup()
{
        Serial.begin(9600);
}
int incomingByte = 0;   // 用于存储从串口读到的数据
void loop()
{
    // 只在收到数据时发送数据
    if (Serial.available() > 0) {
            // 读取传入的字节
            incomingByte = Serial.read();

        //用两种方式往串口送数据,以免有非可见字符
            Serial.println(incomingByte, DEC);
            Serial.write(incomingByte);
            Serial.println();
    }
}

然后电脑上开了两个串口调试助手,一个连接com3,一个连接com10
结果就是:
com3(连接Arduino板RX TX端口的) 发送数据,在com3 和 com10上都能收到程序回传的数据
com10(Arduino板通过USB连接电脑的)发送数据,在com3和com10上都没有回传数据

但是板子下载程序都是正常的,说明USB口应该是没问题的,不知道问题出在哪里??
有没有兄弟可以指点下迷津
回复

使用道具 举报

发表于 2016-11-30 19:11:35 | 显示全部楼层
貌似UNO只有一组串口,而且是跟USB公用一个串口。
回复 支持 反对

使用道具 举报

发表于 2016-11-30 19:15:03 | 显示全部楼层
703+UNO=Arduino Yun,这是其中一种做法,还用其他的用法。
楼主的问题应该是不清楚Arduino的串口,UNO只有一个串口!0,1引脚的串口世纪上和USB的串口芯片连接在一起的。如果在喔0,1引脚接入其他的串口模块,并且USB串口又是接入的,会造成UNO无法下载程序以及串口通讯出问题。
从原理图可以看出,USB串口芯片的TX、RX通过了电阻接到atmega328的Tx、RX引脚上(Arduino  0,1引脚),如果外部接有模块,它是直接接到0,1引脚,所以外部的模块会起作用,而Arduino 板载的USB转串口不起作用,并且当接上USB线可能会出现串口通讯的紊乱。

总而言之,如果0,1引脚 有外接模块,板载的串口通讯就很可能出问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-1 08:29:17 | 显示全部楼层
164335413 发表于 2016-11-30 19:15
703+UNO=Arduino Yun,这是其中一种做法,还用其他的用法。
楼主的问题应该是不清楚Arduino的串口,UNO只 ...

谢谢您的回复与指点
我昨天特地看了UNO的电路图,知道328P就一对RX,TX,328P的RX,TX出来之后都是一分为二,其中一对直通板载的0,1口,另外一对,连接板载的一个USB-TTL芯片,转换成USB接口形式
所以USB接口其实就是板载0,1口的RX,TX经过了USB-TTL芯片转换的结果,两者是通的

我先试的是不接0,1口,直接用USB口做实验,发送,程序回传,但是没有反应
然后把01口(用USB-TTL板子)和usb口同时接电脑,再试
就是我帖子所说的,01口发送数据,自己能接收,USB口上也能接收
反之,USB口发送,01口和USB口自己都不没接收到东西

猜测,板载的USB-TTL芯片(ATMEGA16U2)是不是对外部传入的数据有识别呢??
回复 支持 反对

使用道具 举报

发表于 2016-12-1 09:09:41 | 显示全部楼层
。。。就是我帖子所说的,01口发送数据,自己能接收,USB口上也能接收
反之,USB口发送,01口和USB口自己都不没接收到东西。。。
你还是忽略了我说的“USB to uart模块是直接连到0,1引脚的,而板载的16U2是通过两个电阻连接的。”这样造成,用16U2发送数据给芯片和USB to UART时,是通过了电阻,而USB to UART的TX有内部的上拉或下拉,导致16U2 TX不能发送正常的信号给芯片的RX,所以没有反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-1 16:45:19 | 显示全部楼层
164335413 发表于 2016-12-1 09:09
。。。就是我帖子所说的,01口发送数据,自己能接收,USB口上也能接收
反之,USB口发送,01口和USB口自己 ...

再次感谢你的回复,受你的启发,觉得电阻之类的会有影响(抱歉没啥专业知识背景,瞎描述一下)
刚刚特地又重新做了一次实验,已经可以了,USB口自己发送,自己可以接收数据
昨天我做实验时,错误的地方在于0,1号口一直连接着USB-TTL板子(即使它没有插入电脑),而今天是把板子上的线清空,不接任何东西,只用USB连接电脑,COM口发送,程序回传,成功了
确实是因为0,1口连接着USB-TTL的板子产生了影响
回复 支持 反对

使用道具 举报

发表于 2016-12-1 19:43:48 | 显示全部楼层
zwqcactus 发表于 2016-12-1 16:45
再次感谢你的回复,受你的启发,觉得电阻之类的会有影响(抱歉没啥专业知识背景,瞎描述一下)
刚刚特地 ...

如果在使用703N的过程中有什么问题也可以私信我。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-2 13:38:04 | 显示全部楼层
164335413 发表于 2016-12-1 19:43
如果在使用703N的过程中有什么问题也可以私信我。

抱歉,等级不够,私信不了。。。
现在用703N确实还遇到一个问题
如我帖子描述,现在Arduino USB直连电脑,打开串口调试器,发送数据给USB,点亮LED,是成功的
但是在703N上,用echo “text” > /dev/ttyACM0的方式却一直不成功
不知道可否指点下解决思路呢?
回复 支持 反对

使用道具 举报

发表于 2016-12-2 20:08:17 | 显示全部楼层
zwqcactus 发表于 2016-12-2 13:38
抱歉,等级不够,私信不了。。。
现在用703N确实还遇到一个问题
如我帖子描述,现在Arduino USB直连电 ...

703N是否安装了openwrt?USB驱动是否识别?/dev目录下是不是有ttyUSB?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-4 18:05:14 | 显示全部楼层
164335413 发表于 2016-12-2 20:08
703N是否安装了openwrt?USB驱动是否识别?/dev目录下是不是有ttyUSB?

703N刷了下面这个帖子的固件,带Avrdude,可通过网页直接刷Arduino固件的
http://www.geek-workshop.com/thread-5816-1-1.html

插入Arduino板子,识别到/dev/ttyACM0
用echo ‘hello’ >/dev/ttyS0 可以发信息到串口,串口连接了Arduino的话,就可以通信了
不接串口,直接Arduino板连接703N,用echo ‘hello’ >/dev/ttyACM0,能看到Arduino上的RX TX等有闪,但是Arduino板没有动作
回复 支持 反对

使用道具 举报

发表于 2016-12-5 09:45:15 | 显示全部楼层
zwqcactus 发表于 2016-12-4 18:05
703N刷了下面这个帖子的固件,带Avrdude,可通过网页直接刷Arduino固件的
http://www.geek-workshop.com ...

USB设备,看到的应该是ttyUSB0~9,不应该是ttyS或者ttyACM,你可以试着不插入USB看一下串口列表里有什么,插上USB以后列表里多了什么
回复 支持 反对

使用道具 举报

发表于 2016-12-5 09:48:00 | 显示全部楼层
zwqcactus 发表于 2016-12-4 18:05
703N刷了下面这个帖子的固件,带Avrdude,可通过网页直接刷Arduino固件的
http://www.geek-workshop.com ...

另外我建议,你拆开703N,里面留有焊接USB口的地方,自己DIY上去。
回复 支持 反对

使用道具 举报

发表于 2016-12-20 13:54:57 | 显示全部楼层
貌似我也看到了,只有一个串口,我怎么判断其是否接收到数据?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 07:25 , Processed in 0.038933 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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