#c# #cmd #arduino
#c# #cmd #arduino
Вопрос:
Я пытаюсь загрузить blink.hex
файл в Arduino через C #, используя этот код:
string Folder1 = @"C:Program Files(x86)Arduinohardwaretoolsavr/bin/avrdude";
string Folder2 = @"C:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf";
string Hexpath = @"C:VG-Break InHEXVBISU.ino.hex";
string arg =
"-C" Folder2
"-v -patmega328p -carduino -P"
cmbports.SelectedText.ToString()
"-b115200 -D -Uflash:w:" Hexpath "i";
Process.Start(@"C:Program Files (x86)Arduinohardwaretoolsavr/bin/avrdude" ,arg);
Но он не загружается. Я просто вижу, что cmd мигает на долю секунды…
Строка, которую я вижу в моей Arduino IDE при загрузке, является:
C:Program Files (x86)Arduinohardwaretoolsavr/bin/avrdude -CC:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf -v -patmega328p -carduino -PCOM5 -b115200 -D -Uflash:w:C:UsersVICTOR~1AppDataLocalTemparduino_build_426502/VBISU.ino.hex:i
Комментарии:
1. Но зачем вам это делать? Arduino IDE слишком сложна для вас? И для такой крошечной задачи, как эта, пакетный скрипт / оболочка подошел бы лучше.
Ответ №1:
Похоже, что вы объединяете все свои аргументы в arg
строку. Вам нужно разделить их пробелами. То, что вы получили, используя показанный вами код, это:
avrdude -CC:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf-v -patmega328p -carduino -Pport-b115200 -D -Uflash:w:C:VG-Break InHEXVBISU.ino.hexi
не уверен, нужен ли вашей версии пробел между параметром и его данными, но вам определенно нужно разделить каждый отдельный параметр. Вы также забыли ‘:’ между шестнадцатеричным путем и идентификатором типа ‘i’.
Попробуйте следующее:
string arg = "-C " Folder2
" -v -p atmega328p -c arduino"
" -P " cmbports.SelectedText.ToString()
" -b 115200 -D -U flash:w:" Hexpath ":i";
Ответ №2:
Теперь, после небольшого исследования, я решил свой собственный вопрос и подумал, что размещу ответ здесь, если он кому-то понадобится. Проблема в том, что я пытался загрузить файл, созданный компилятором Arduino, в котором не был включен загрузчик. Однако я обнаружил, что компилятор также создал файл с включенным загрузчиком. При изменении шестнадцатеричного пути к этому файлу все заработало.
Комментарии:
1. Окно ответа предназначено для ответа. Вы можете в эфире прокомментировать что-либо по своему собственному вопросу или отредактировать вопрос, если вам нужно добавить дополнительную информацию.
2. Я ответил на свой собственный вопрос, чтобы помочь другим людям с такой же проблемой.