2016-11-08 115 views
0

有沒有方法可以將從C#程序生成的C程序編譯並上傳到arduino板。如何從C#應用程序編譯並上傳到Arduino

基本上我已經建立了一個小小的C#應用​​程序,它根據選擇到窗口中的一些參數生成一個C代碼。現在,您必須將代碼複製並粘貼到您的ardunio界面中以編譯並上傳程序。

我想自動執行此任務,並直接發送Arduino板內的C代碼,而無需使用arduino程序或其他任何東西。只有我的窗口界面。可能嗎 ?

程序圖片: enter image description here

回答

1

你不上傳的C代碼,但您使用GCC編譯將它編譯成機器代碼。 此外,Arduino的IDE確實一些準備以從.ino文件.cpp文件(生成函數原型,添加包括文件) 然後效用AVRDUDE用於上傳所得.hex文件

看擴展在編譯和上傳時輸出。

總的來說這是可能的,但你問的方式我懷疑你會成功。 在使用C#時,請查找VisualStudio插件以從VisualStudio(搜索VisualMicro)中編譯並上傳到Arduino。 也許這對你很有趣......

+0

謝謝你的答覆。我關注VisualMicro。這對我來說似乎很難使用!謝謝你 – user2305302

+0

你可以從IDE開始,然後將一個草圖導入VS項目。在VS中你可以編輯(更好的智能感知支持),編譯和上傳。當然,這是一個完全不同於你的問題/想法的方法,但它與使用Arduino IDE – datafiddler

1

正如datafiddler在他的答案中指出的,你需要先撥打avr-gcc(爲了編譯你的程序)。

作爲第二步(上傳過程)的替代方案,您可以使用本地C#庫ArduinoSketchUploader通過它的引導加載程序將二進制HEX文件上傳到Arduino。通過這種方式,您不必用代碼運輸/包裝avrdude

聲明:這是我親自撰寫的圖書館。

一旦NuGet包被引用時,生成的代碼是這樣的:

var uploader = new ArduinoSketchUploader(
    new ArduinoSketchUploaderOptions() 
    { 
     FileName = @"C:\MyHexFiles\UnoHexFile.ino.hex", 
     PortName = "COM3", 
     ArduinoModel = ArduinoModel.UnoR3 
    }); 
uploader.UploadSketch(); 
+0

ChristopheR一樣簡單,這可能是一個解決方案,所以我必須找到一個解決方案來創建.ino.hex。我從來沒有探討過C#的這一部分,但我認爲對我來說是一個可以接受的方式。謝謝。 – user2305302