这与我在 Arduino 论坛上发布的问题相同,因为这里可能有人可以帮助我:) 我正在使用 SparkFun 的 Arduino Pro Micro 3.3V/8MHz 进行项目。我已经安装了驱动程序,在 IDE 上添加了对板的支持,并尝试将草图上传到它 - 它工作正常。我意识到板子附带的引导加载程序模拟了一个用于上传的不同串行端口,因为普通端口是 COM5,上传端口是 COM6。虽然对于这个项目,代码优化是最重要的,所以我转向了 Atmel Studio,我已经成功地使用了 UNO。我使用寄存器和函数为 Micro 构建了一个简单的闪烁代码:
#define ledpin PC6
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRC |= (1 << ledpin);
while(1)
{
PORTC |= (1 << ledpin);
_delay_ms(1000);
PORTC &= ~(1 << ledpin);
_delay_ms(1000);
}
}
我可以使用 avrdude 中的以下命令通过 Atmel Studio 上传它:
C:\Program Files (x86)\Arduino\hardware/tools/avr/bin/avrdude -C"C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf" -v -v -patmega32u4 -cavr109 -P\\.\COM6 -b57600 -D -Uflash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i
为了能够做到这一点,我必须在不到 750 毫秒的时间内按两次重置按钮,因为连接指南建议 ( https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-指南/疑难解答和常见问题解答#ts-reset)。
该代码有效,但现在我注意到正常的串行端口(COM5)永远不会回来。可能是什么原因?我仍然可以将新代码上传到 Micro,所以引导加载程序应该没问题吧?
我在这里先向您的帮助表示感谢 :)