2016-11-08 48 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

相关问题