上传AVR程序后看不到Arduino port up
Cannot see Arduino port up after uploading AVR program
我正在尝试学习如何使用 AVR 库对我的 Arduino 进行 AVR 编程。我能够使用 Arduino IDE:
成功地将这个闪烁程序上传到我的 Arduino Micro
#include <avr/io.h>
#include <util/delay.h>
#define MS_DELAY 1000
int main (void) {
// Set 7th bit of DDRC to 1: sets pin 13 to output
DDRC |= _BV(DDC7);
while (1) {
// Set 7th bit of PORTC to 1: sets pin 13 to HIGH
PORTC |= _BV(PORTC7);
// Delay for MS_DELAY amount
_delay_ms(MS_DELAY);
// Turn off LED
// Set 7th bit of PORTC to 0: sets pin 13 to LOW
PORTC &= ~_BV(PORTC7);
// Delay for MS_DELAY amount
_delay_ms(MS_DELAY);
}
}
但是现在我的 Arduino 没有出现在 Arduino IDE 中可连接的可用 Arduino 板列表中,这意味着我无法编写任何新程序。在通过终端使用 avrdude
命令上传之前我遇到了麻烦,这就是为什么我转而使用 Arduino IDE 来帮助我上传。在最终上传之前,Arduino 一直运行良好。
我在 macOS 上,所以我检查了我的 /dev/
目录,但设备也不在那里(我的 Arduino 会显示为 /dev/cu.usbmodemXXXX
)。
我该如何解决这个问题?我是不是不小心弄坏了我的 Arduino?以后我怎样才能防止这种情况发生?
谢谢!
好吧,我使用 double-click 技巧成功挽救了棋盘。
- 准备好空白的 Arduino 草图
- 编译它
- 将 Arduino 连接到计算机,然后 double-click 重置按钮。这将使 Arduino 处于“引导加载程序”模式大约 8 秒。 Arduino 的板载 LED 应该开始闪烁。
- Select Arduino 端口并点击上传。希望这个过程足够快,可以在退出“引导加载程序”模式之前上传到 Arduino。如果没有,double-click 重置按钮并重试。
我把这个留在这里让其他人找到一种方法来打开他们的 Arduinos。我敢肯定这是第一次学习AVR编程的程序员很容易犯的错误。
Arduino 框架提供了它自己的 main 来执行一些初始化,例如调用 USBDevice.attach。您提供自己的主要功能,因此您负责一切,包括 USB 和其他 Arduino 核心初始化。
或者,使用 setup() 和 loop() 程序编写 Arduino 草图,以便您可以继续使用 Arduino 提供的功能。您仍然可以使用较低级别的 avr-libc 功能并直接操作硬件寄存器。
或者干脆离开 Arduino,那就没有歧义了——你必须提供一切。但是 Micro 不太适合这个,如果你想使用 USB 引导加载程序则不行。除非,如您所述,您通过硬重置序列触发引导加载程序。
我正在尝试学习如何使用 AVR 库对我的 Arduino 进行 AVR 编程。我能够使用 Arduino IDE:
成功地将这个闪烁程序上传到我的 Arduino Micro#include <avr/io.h>
#include <util/delay.h>
#define MS_DELAY 1000
int main (void) {
// Set 7th bit of DDRC to 1: sets pin 13 to output
DDRC |= _BV(DDC7);
while (1) {
// Set 7th bit of PORTC to 1: sets pin 13 to HIGH
PORTC |= _BV(PORTC7);
// Delay for MS_DELAY amount
_delay_ms(MS_DELAY);
// Turn off LED
// Set 7th bit of PORTC to 0: sets pin 13 to LOW
PORTC &= ~_BV(PORTC7);
// Delay for MS_DELAY amount
_delay_ms(MS_DELAY);
}
}
但是现在我的 Arduino 没有出现在 Arduino IDE 中可连接的可用 Arduino 板列表中,这意味着我无法编写任何新程序。在通过终端使用 avrdude
命令上传之前我遇到了麻烦,这就是为什么我转而使用 Arduino IDE 来帮助我上传。在最终上传之前,Arduino 一直运行良好。
我在 macOS 上,所以我检查了我的 /dev/
目录,但设备也不在那里(我的 Arduino 会显示为 /dev/cu.usbmodemXXXX
)。
我该如何解决这个问题?我是不是不小心弄坏了我的 Arduino?以后我怎样才能防止这种情况发生?
谢谢!
好吧,我使用 double-click 技巧成功挽救了棋盘。
- 准备好空白的 Arduino 草图
- 编译它
- 将 Arduino 连接到计算机,然后 double-click 重置按钮。这将使 Arduino 处于“引导加载程序”模式大约 8 秒。 Arduino 的板载 LED 应该开始闪烁。
- Select Arduino 端口并点击上传。希望这个过程足够快,可以在退出“引导加载程序”模式之前上传到 Arduino。如果没有,double-click 重置按钮并重试。
我把这个留在这里让其他人找到一种方法来打开他们的 Arduinos。我敢肯定这是第一次学习AVR编程的程序员很容易犯的错误。
Arduino 框架提供了它自己的 main 来执行一些初始化,例如调用 USBDevice.attach。您提供自己的主要功能,因此您负责一切,包括 USB 和其他 Arduino 核心初始化。
或者,使用 setup() 和 loop() 程序编写 Arduino 草图,以便您可以继续使用 Arduino 提供的功能。您仍然可以使用较低级别的 avr-libc 功能并直接操作硬件寄存器。
或者干脆离开 Arduino,那就没有歧义了——你必须提供一切。但是 Micro 不太适合这个,如果你想使用 USB 引导加载程序则不行。除非,如您所述,您通过硬重置序列触发引导加载程序。