badboyhr 发表于 2013-5-17 21:08:57

Arduino 长时间读取串口数据出现中断

我需要长时间纪录压力数据,用Arduino Uno的板子记录两个压力传感器的数据,但时间一长就会停止纪录了,停止的时刻是随机的,最多一次记了1200多分钟的(每分钟读取一次)。停止记录之后,关闭Serial monitor窗口就再打不开Serial monitor窗口了,也不能再向板子传程序了,都会报错显示Serial port 4 has already in use。只有关掉IDE窗口,拔掉usb线,再开IDE窗口,再插usb线之后才能重新开始。
以为是usb供电电压不稳,接了9v 1A外接电源,再试,依然不行。
以为是买的淘宝里的50块钱的Uno板子不行,重新买了138¥的Uno,再试,还是不行。
以为可能会是压力传感器或者自己写的程序的问题。按照论坛里的帖子,用LM35D温度传感器记录温度数据,还是会出现这个问题。
再然后,试着用Arduino IDE里自带的example里面的01.Basic-AnalogReadSerial的程序读串口的数据,还是同样的问题。中断了。。
崩溃了,请高手指点啊,是不是真的就不能长时间读取串口数据啊,这个不科学啊。。。。

学长 发表于 2013-5-17 21:32:37

同样的问题... 求解
没试过 mango , 不知道会不会

弘毅 发表于 2013-5-17 22:33:35

本帖最后由 弘毅 于 2013-5-17 22:53 编辑

{:soso_e103:}晚上写个程序用MangoII做一下测试。。明早汇报。。。如果使用Arduino IDE的串口监视器会有一个问题,每次打开串口监视器会自动重启Arduino。。。所以我想不能稳定运行的原因在这里,你换一个第三方串口监视器,或者使用MangoII,把上面DTR跳帽拔掉。。。让自动复位功能失效试试~~现在开始让板子每隔1秒发送一个A0口读数到IDE的串口监视器。。22点37分。。。开始计时。。

备份一下程序顺道。。。。

/*
AnalogReadSerial
Reads an analog input on pin 0, prints the result to the serial monitor.
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

This example code is in the public domain.
*/

// the setup routine runs once when you press reset:
long a=0;

void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
a = ++a;
Serial.print(a);
Serial.print(".");
Serial.println(sensorValue);
delay(1000);      // delay in between reads for stability
}

学长 发表于 2013-5-18 02:18:32

辛苦了 弘大师... 期待明早的好消息

学长 发表于 2013-5-18 02:18:56

我是对 mango ii 有无比的信心啊..

badboyhr 发表于 2013-5-18 08:06:03

弘毅 发表于 2013-5-17 22:33 static/image/common/back.gif
晚上写个程序用MangoII做一下测试。。明早汇报。。。如果使用Arduino IDE的串口监视器会有一个 ...

多谢 弘毅大哥了 辛苦辛苦

弘毅 发表于 2013-5-18 08:18:58

本帖最后由 弘毅 于 2013-5-18 08:21 编辑

让串口监视器跑了一晚上。。。。貌似挺正常的。。。昨晚是把mangoII的DTR跳帽拔掉后进行的测试。。。

现在还在335XX多少继续跳动着。。。貌似没发现啥问题。。。先去工作室干活。。。今天找一台电脑挂个2,3天试试跑的是否能稳定运行。



回楼主~~经过晚上测试呢,你可以使用下面方法来测测

1,不要使用官方IDE的串口监视器,使用第三方的串口监视器监视器来进行数据采集。测试看是否能长时间运转。。。。如果可以长时间了,那说明很有可能是IDE的串口监视器原因。。或者是DTR自动复位信号部分导致的故障。。。

如果还是不能长时间运行。。。那么很有可能就是UNO的USB转串口芯片问题了。那一颗毕竟不是专业串口芯片。。只是软件模拟的。Mango用的USB转串口芯片沿用了那颗工业级的FT232~~~感觉长时间的数据采集。。还是得上工业级芯片比较靠谱。

badboyhr 发表于 2013-5-18 10:16:53

弘毅 发表于 2013-5-18 08:18 static/image/common/back.gif
让串口监视器跑了一晚上。。。。貌似挺正常的。。。昨晚是把mangoII的DTR跳帽拔掉后进行的测试。。。

现 ...

大哥您真敬业,感动啊~~~
这就回去试试第三方串口监视去,再不行就直接买Mango了

弘毅 发表于 2013-5-18 17:13:02

找了台台式机(这个台式机真不靠谱,重启了9次才进了系统!!!)挂着测试。。。
下班前。。。截图留念。。。

弘毅 发表于 2013-5-19 17:30:32

坑了。。下午来看时,发现那个台式机自动重启了。。囧死了,得去找台带电池的笔记本电脑测试了。。

badboyhr 发表于 2013-5-19 22:46:33

。。。。。。
我用第三方串口监测软件试了
昨天晚上开始计时的 每十秒读一个A0的数
今天早上九点多就不行了
同样的问题一样的死法
证明问题应该不在串口监测器

badboyhr 发表于 2013-5-19 22:49:02

弘毅 发表于 2013-5-19 17:30 static/image/common/back.gif
坑了。。下午来看时,发现那个台式机自动重启了。。囧死了,得去找台带电池的笔记本电脑测试了。。

等待你的好消息了
如果没问题 瞬间立刻马上 就去买 mango了
这问题坑了我快一个月了。。。

弘毅 发表于 2013-5-20 00:06:14

badboyhr 发表于 2013-5-19 22:49 static/image/common/back.gif
等待你的好消息了
如果没问题 瞬间立刻马上 就去买 mango了
这问题坑了我快一个月了。。。

刚抢了老婆本本。。挂上测试。。。老婆出差7天。。。刚好用来跑极限测试。。。

弘毅 发表于 2013-5-20 11:04:21

跑了11个小时。。截图留恋。。。还在继续运行。。看看跑多久才会挂掉

badboyhr 发表于 2013-5-20 18:54:03

弘毅 发表于 2013-5-20 11:04 static/image/common/back.gif
跑了11个小时。。截图留恋。。。还在继续运行。。看看跑多久才会挂掉

静静地关注 耐心地等待:)
页: [1] 2 3
查看完整版本: Arduino 长时间读取串口数据出现中断