Загрузить в arduino C#

#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. Я ответил на свой собственный вопрос, чтобы помочь другим людям с такой же проблемой.