gpt4 book ai didi

c++ - 通过 C++ Serial 与 Arduino 对话

转载 作者:行者123 更新时间:2023-11-28 08:13:58 25 4
gpt4 key购买 nike

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

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

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

我看过一些涉及在 CLR C++ 中使用 SerialPort 类/库的不同帖子,但我没有使用 CLR C++ 的经验,而且看起来确实有些不同。对于具有良好的 native C++ 知识的人(我刚刚完成我的第二个关于数据结构和 OOP 的 C++ 类(class),这正是这个项目的实际目的)来说,快速迁移到 CLR C++ 似乎特别困难,还是有更好的有其他选择吗?

我能找到的最好的是在这个页面上:http://arduino.cc/playground/Interfacing/CPPWindows但是,当我尝试在 Visual Studio 中将头文件和 CPP 文件添加到我的 native 项目时,编译时出现错误: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。如果仍有问题,请尝试添加一些更具体的问题。

关于c++ - 通过 C++ Serial 与 Arduino 对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8234614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com