SparkFun 的 Arduino Pro Micro 和 Atmel Studio 缺少串行端口
Posted
技术标签:
【中文标题】SparkFun 的 Arduino Pro Micro 和 Atmel Studio 缺少串行端口【英文标题】:Missing serial port with SparkFun's Arduino Pro Micro and Atmel Studio 【发布时间】:2014-06-30 00:23:38 【问题描述】:这与我在 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);
我可以通过 Atmel Studio 在 avrdude 中使用以下命令上传它:
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-guide/troubleshooting-and-faq#ts-reset) 所建议的那样。
代码有效,但现在我注意到正常的串行端口 (COM5) 再也不会回来了。可能是什么原因?我仍然可以将新代码上传到 Micro,所以引导加载程序应该没问题吧?
提前感谢您的帮助:)
【问题讨论】:
【参考方案1】:我已经找到了解决方案。正如我在 Arduino 论坛上发布的那样:
我能够将 pro micro 恢复到 SparkFun 交付给我的状态。
为此,我使用 Arduino Uno 作为 ISP(以 ArduinoISP 为例)连接到 Micro 的 MISO、MOSI、SCLK 和 RST 引脚,并通过 Arduino IDE 上传引导加载程序。起初,我收到一条错误消息:
avrdude: verification error, first mismatch at byte 0x0000 0xfe != 0xce
然后,当我意识到 board.txt 指定了要使用的保险丝位时,我开始研究如何在 Pro Micro 上设置保险丝位。我所要做的就是将“extended_fuses=0xfe”更改为“extended_fuses=0xce”,重新启动 IDE 并重试引导加载程序上传。最后,成功! 为了测试它,我在 IDE 中编写了一个简单的 UART“Hello world”应用程序,它运行良好。
上传引导加载程序时,确保您选择了正确的板(SparkFun 3.3V/8MHz)并选择了 ISP Arduino 的 COM 端口。
【讨论】:
以上是关于SparkFun 的 Arduino Pro Micro 和 Atmel Studio 缺少串行端口的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Arduino和SIM900A GPRS / GSM模块将数据发送到Web服务器
用 Arduino Uno 给 Arduino Mini(Pro)烧录程序