首页 > 解决方案 > 将命令从 Raspberry PI 发送到 arduino,反之则使用 C++

问题描述

我正在尝试做一个项目,我想从我的 rpi 向我的 arduino UNO 发送一些命令。我让它们通过 USB 连接。我询问了我的朋友圈,他们说要使用boost:asio 库以及streambufferand async_write async_read函数。

他们提出了这些建议,因为我也想从我的 arduino 发送数据。

我意识到首先我必须创建一个 IO 服务,因为这是我用来创建它的代码:

boost::asio::io_service ioservice;
boost::asio::serial_port serial(ioservice, "/dev/ttyACM0");

serial.set_option(boost::asio::serial_port_base::baud_rate(9600));
serial.set_option(boost::asio::serial_port::flow_control(boost::asio::serial_port::flow_control::none));
serial.set_option(boost::asio::serial_port::parity(boost::asio::serial_port::parity::none));
serial.set_option(boost::asio::serial_port::stop_bits(boost::asio::serial_port::stop_bits::one));  serial.set_option(boost::asio::serial_port::character_size(boost::asio::serial_port::character_size(8)));

然后通过执行以下操作创建流缓冲区:

boost::asio::streambuf b;

为了更好地理解问题,我想从 rpi 发送到 arduino 的命令是字符串,例如 string="g 50" 并且我想从 arduino 发送到 rpi 的信息是 2 个向量(vect_1 和 vect_2),每个向量都有3个浮子。如果可能的话,我想同时传递这两个向量。

如何使用这个 streambuf b 将数据发送到我的 arduino 或我的 rpi?我怎样才能把数据放在b中?我可以通过流同时发送这 3 个向量还是不可能?阅读它们只是 async_read需要还是需要其他东西?

标签: c++boostarduino

解决方案


推荐阅读