有没有方法可以将从C#程序生成的C程序编译并上传到arduino板。如何从C#应用程序编译并上传到Arduino
基本上我已经建立了一个小小的C#应用程序,它根据选择到窗口中的一些参数生成一个C代码。现在,您必须将代码复制并粘贴到您的ardunio界面中以编译并上传程序。
我想自动执行此任务,并直接发送Arduino板内的C代码,而无需使用arduino程序或其他任何东西。只有我的窗口界面。可能吗 ?
有没有方法可以将从C#程序生成的C程序编译并上传到arduino板。如何从C#应用程序编译并上传到Arduino
基本上我已经建立了一个小小的C#应用程序,它根据选择到窗口中的一些参数生成一个C代码。现在,您必须将代码复制并粘贴到您的ardunio界面中以编译并上传程序。
我想自动执行此任务,并直接发送Arduino板内的C代码,而无需使用arduino程序或其他任何东西。只有我的窗口界面。可能吗 ?
你不上传的C代码,但您使用GCC编译将它编译成机器代码。 此外,Arduino的IDE确实一些准备以从.ino文件.cpp文件(生成函数原型,添加包括文件) 然后效用AVRDUDE用于上传所得.hex文件
看扩展在编译和上传时输出。
总的来说这是可能的,但你问的方式我怀疑你会成功。 在使用C#时,请查找VisualStudio插件以从VisualStudio(搜索VisualMicro)中编译并上传到Arduino。 也许这对你很有趣......
正如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();
ChristopheR一样简单,这可能是一个解决方案,所以我必须找到一个解决方案来创建.ino.hex。我从来没有探讨过C#的这一部分,但我认为对我来说是一个可以接受的方式。谢谢。 – user2305302
谢谢你的答复。我关注VisualMicro。这对我来说似乎很难使用!谢谢你 – user2305302
你可以从IDE开始,然后将一个草图导入VS项目。在VS中你可以编辑(更好的智能感知支持),编译和上传。当然,这是一个完全不同于你的问题/想法的方法,但它与使用Arduino IDE – datafiddler