通过c++串口与Arduino对话
Talking to Arduino via C++ Serial
我试图创建一个程序,用户输入一个字符串,可以编码为消息并发送(通过USB)到我的Arduino板,它接收消息并显示在LCD屏幕上。我已经得到了Arduino方面的一切,但工作:我可以通过Arduino IDE中的串行监视器发送字符串(完成标记开始和结束的标志值)。
我现在的问题是创建程序来驱动它。我从来没有尝试过通过c++连接到串行连接。今天下午我一直在看一些不同的实现,但我很难在它们之间进行排序,并找到,至少对我来说,最容易使用的。
我觉得我的需求是相当适度的,因为我基本上是创建一个控制台应用程序与一个循环驱动的菜单系统,将询问用户他们想要的下一个字符串是什么,然后编码成一个新的字符串,并发送它。
我看过一些不同的帖子,涉及使用CLR c++中的SerialPort类/库,但我没有CLR c++的经验,它确实看起来有些不同。对于具有不错的本地c++知识的人来说(我刚刚完成了关于数据结构和面向对象的第二个c++课程,这就是这个项目的实际目的),快速迁移到CLR c++是否特别困难,或者是否有更好的替代方案?
我能找到的最好的是在这个页面上:http://arduino.cc/playground/Interfacing/CPPWindows,然而,当我试图在Visual Studio中将头文件和CPP文件添加到我的本地项目时,我在compile: 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。
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 人脸跟踪arduino代码的优化
- vscode下的Arduino代码出现意外编译错误
- Arduino从Txt读取整数
- 当对话框被接受时,如何用参数调用槽
- Arduino C++在构造函数中用参数声明对象数组
- C++ Boost::asio串行通信与Arduino无法写入
- Arduino millis() - millis() 怎么能等于 0 以外的任何东西?
- 在Arduino中将PWM通道命名为LEDC是否有特定原因
- 'val' Arduino 错误代码之前的预期'('
- 我可以在 Arduino 的库文件夹之外安装库吗?
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- Arduino 用于语句错误。令牌之前的预期')' ';'。如何解决这个问题?
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- Arduino-C++ bool 不会从 false 变为 true
- std::字符串与 PCWSTR 的对话
- 通过c++串口与Arduino对话