极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20143|回复: 17

为什么arduino UNO只USB供电且打开串口监视软件才执行已下载的程序?

[复制链接]
发表于 2014-4-8 11:23:47 | 显示全部楼层 |阅读模式
求教。arduino UNO R3采用外部电源供电时,为什么不执行已下载的程序?采用USB供电且打开串口监视软件时,则可以正常运行?
试过不同的很多程序,程序应该没问题。
回复

使用道具 举报

发表于 2014-4-8 14:02:08 | 显示全部楼层
猜测一下 bootloader中有这个条件?

回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-8 14:56:42 | 显示全部楼层
zoologist 发表于 2014-4-8 14:02
猜测一下 bootloader中有这个条件?

什么意思?"猜测一下 bootloader中有这个条件?"
回复 支持 反对

使用道具 举报

发表于 2014-4-8 16:08:14 | 显示全部楼层
我用 外部電源時都會執行已下載的程序, 是否你的有問題?

試想想, 如果真的不可以的話....那些自平衡車, 四軸, .... 怎辦?  
回复 支持 反对

使用道具 举报

发表于 2014-4-8 16:31:55 | 显示全部楼层
halioo 发表于 2014-4-8 14:56
什么意思?"猜测一下 bootloader中有这个条件?"

sorry  理解错误。你说的现象确实很奇怪,没道理.....
回复 支持 反对

使用道具 举报

发表于 2014-4-8 16:41:54 | 显示全部楼层
打开串口监视器相当于复位 建议测一下是不是上电复位有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-8 17:53:40 | 显示全部楼层
southwolf 发表于 2014-4-8 16:41
打开串口监视器相当于复位 建议测一下是不是上电复位有问题

这个怎么检测?
回复 支持 反对

使用道具 举报

发表于 2014-4-8 18:13:19 | 显示全部楼层
看看setup()里面有没有while(!Serial);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-8 23:00:02 | 显示全部楼层
Be1ieve 发表于 2014-4-8 18:13
看看setup()里面有没有while(!Serial);

刚试了试,在setup()里加入while(!Serial);也不行啊。。。。
回复 支持 反对

使用道具 举报

发表于 2014-4-9 00:21:34 | 显示全部楼层
halioo 发表于 2014-4-8 23:00
刚试了试,在setup()里加入while(!Serial);也不行啊。。。。

能不能把你的程序放上来看看呀?这样问谁也没法回答呀!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-9 08:51:54 | 显示全部楼层
fish6823 发表于 2014-4-9 00:21
能不能把你的程序放上来看看呀?这样问谁也没法回答呀!

//
//   FILE:  dht_test.pde
// PURPOSE: DHT library test sketch for Arduino
//

#include <dht.h>

dht DHT;

#define DHT11_PIN 4//put the sensor in the digital pin 4


void setup()
{
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT_LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop()
{

  // READ DATA
  Serial.print("DHT11, \t");
int chk = DHT.read11(DHT11_PIN);
  switch (chk)
  {
    case 0:  Serial.print("OK,\t"); break;
    case -1: Serial.print("Checksum error,\t"); break;
    case -2: Serial.print("Time out error,\t"); break;
    default: Serial.print("Unknown error,\t"); break;
  }
// DISPLAT DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);

  delay(1000);
}
//
// END OF FILE
//
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-9 08:52:22 | 显示全部楼层
halioo 发表于 2014-4-9 08:51
//
//   FILE:  dht_test.pde
// PURPOSE: DHT library test sketch for Arduino

就是DHT11测量温湿度
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-9 08:53:35 | 显示全部楼层
突然想到了一点,是不是因为我的程序需要调用库函数,所以不能脱离IDE运行???
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-9 08:55:27 | 显示全部楼层
halioo 发表于 2014-4-9 08:53
突然想到了一点,是不是因为我的程序需要调用库函数,所以不能脱离IDE运行???

这样我要想脱离电脑运行的话就要把库函数弄到程序里去?
回复 支持 反对

使用道具 举报

发表于 2014-4-9 09:18:42 | 显示全部楼层
本帖最后由 Super169 于 2014-4-9 09:20 编辑
halioo 发表于 2014-4-9 08:53
突然想到了一点,是不是因为我的程序需要调用库函数,所以不能脱离IDE运行???


試想想, 自平衡車, 四軸飛行 的程式, 有可能完全不调用库函数嗎?

我反而有個懷疑, 你的程式只向 Serial 輸出, 在不連接 serial 時, 你是如何判定它沒有執行下載了的程式?
外接其他 serial 連線?  會否只是你自己錯誤判定, 以為它沒有執行?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 04:20 , Processed in 0.044593 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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