繁体   English   中英

通过C ++串行与Arduino交谈

[英]Talking to Arduino via C++ Serial

我正在尝试创建一个程序,用户在其中输入可以编码为消息的字符串,然后(通过USB)发送到我的Arduino板,该板接收消息并将其显示在LCD屏幕上。 我已经了解了Arduino的所有方面,但几乎可以正常工作:我可以通过Arduino IDE中的串行监视器发送字符串(完整的标志值来标记开始和结束)。

我现在的问题是创建程序来驱动它。 我从未尝试过通过C ++连接到串行连接。 我今天下午一直在研究几种不同的实现,但是我很难在它们之间进行排序,并且至少对于我来说很难找到最容易使用的实现。

我觉得我的需求相当适中,因为我实际上是在创建一个带有循环驱动菜单系统的控制台应用程序,该系统将询问用户他们想要下一个字符串是什么,然后将其编码为新字符串并发送给。

我看到了一些涉及在CLR C ++中使用SerialPort类/库的不同文章,但是我没有CLR C ++的经验,而且看起来确实有所不同。 对于一个拥有相当不错的本地C ++知识的人(我刚刚完成我的第二个有关数据结构和OOP的C ++类,这实际上是该项目的目的)似乎特别困难,以便快速迁移到CLR C ++还是有更好的选择?在那里替代吗?

我能找到的最好的方法是在此页面上: http : //arduino.cc/playground/Interface/CPPWindows ,但是,当我尝试将标头和CPP文件添加到Visual Studio的本机项目中时,编译时出现错误: error C2664: 'CreateFileW' : cannot convert parameter 1 from 'char *' to 'LPCWSTR' 有谁知道我是否可以在这种类型的项目中使用它?

谢谢你的帮助! 我只是对在哪里进行该项目感到困惑。

我认为没有必要使用CLR。 您提供的示例类应该足够了,您指出的问题可以使用强制转换解决,例如

this->hSerial = CreateFileA( static_cast<LPCSTR>(portName),
            GENERIC_READ | GENERIC_WRITE,
            0,
            NULL,
            OPEN_EXISTING,
            FILE_ATTRIBUTE_NORMAL,
            NULL);

有两个修改:将宏CreateFile更改为功能CreateFileA,并将static_cast第一个参数更改为。 如果仍然有问题,请尝试添加一些更具体的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM