#windows #serial-port #arduino #atmelstudio
#Windows #последовательный порт #arduino #atmelstudio
Вопрос:
Это тот же вопрос, который я опубликовал на форумах Arduino, так как здесь может быть кто-то, кто мог бы мне помочь 🙂 Я использую Arduino Pro Micro 3,3 В / 8 МГц от SparkFun для проекта. Я установил драйверы, добавил поддержку платы в IDE и попытался загрузить на нее эскиз — все работало нормально. Я понимаю, что загрузчик, поставляемый с платой, эмулирует отдельный последовательный порт для загрузки, поскольку обычный порт — COM5, а порт загрузки — COM6. Хотя для этого проекта оптимизация кода имеет первостепенное значение, поэтому я перешел к Atmel Studio, которую я уже успешно использовал с UNO. Я создал простой мигающий код для микро, используя регистры и функции:
#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 amp;= ~(1 << ledpin);
_delay_ms(1000);
}
}
Я могу нормально загрузить его через Atmel Studio с помощью следующей команды в avrdude:
C:Program Files (x86)Arduinohardware/tools/avr/bin/avrdude -C"C:Program Files (x86)Arduinohardware/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) никогда не возвращается. В чем может быть причина? Я все еще могу загрузить новый код на микро, поэтому загрузчик должен быть в порядке, верно?
Заранее спасибо за помощь 🙂
Ответ №1:
Я вроде как нашел решение. Как я писал на форумах Arduino:
Я смог вернуть pro micro в состояние, в котором он был доставлен мне SparkFun.
Для этого я использовал Arduino Uno в качестве провайдера (с примером Arduino Sp), подключенного к выводам MISO, MOSI, SCLK и RST Micro, и загрузил загрузчик через Arduino IDE. Сначала я получил сообщение об ошибке следующего содержания:
avrdude: verification error, first mismatch at byte 0x0000 0xfe != 0xce
Затем я изучил, как установить биты предохранителей на Pro Micro, когда понял, что boards.txt определяет биты предохранителей, которые будут использоваться. Все, что мне нужно было сделать, это изменить «extended_fuses = 0xfe» на «extended_fuses = 0xce», перезапустить IDE и повторить попытку загрузки загрузчика. Наконец, успех!
Чтобы протестировать его, я написал простое приложение UART «Hello world» в IDE, которое работало безупречно.
При загрузке загрузчика убедитесь, что выбрана правильная плата (SparkFun 3,3 В / 8 МГц) и выберите COM-порт Arduino интернет-провайдера.