0

我正在编写一个需要访问串口的测试程序。我现在在 Visual Studio 2012 中做,但我想稍后移植到 Linux。(用于我的 Pandaboard)
你能建议我一种访问在 Win 和 Linux 之间具有几乎相同接口的串行端口的方法吗?
我以前在 Labview 做,但现在我想转向 C++
非常感谢您的帮助!

4

2 回答 2

3

Boost.ASIO文档齐全,测试良好,经过数千人同行评审,全面支持跨平台方式的串口通信。具体的文档可以在这里找到。

话虽如此,它确实假设现代 C++ 的技能水平适中,所以如果您是该语言的新手,那么学习曲线可能会有点陡峭。

于 2012-11-20T05:03:42.697 回答
2

串行端口接口没有太多...您应该能够将所有实现细节包装在它下面。

class ISerialPort
{
public:
   void open(const std::string &serialPortName) = 0;
   void close() = 0;

   void write(const vector<char> &data) = 0;
   vector<char> read(size_t bytesToRead) = 0;
}

尽管它不是一个“接口”,因为它是两个不同平台将实现的通用标头。

编辑:Linux下的串行端口通过打开设备节点来访问。如 /dev/ttyS0(串行端口 0)。在 Windows 中,您正在做同样的事情,但不是打开设备节点,而是打开文件(COM 端口)。如COM1。

在 linux 中,您正在深入研究与平台相关的问题,例如打开设备节点。在 Linux 中,它将打开文件(COM 端口)。

谷歌 c++ windows/linux 串口并返回一个更具体的问题。您刚刚询问了一个界面;)

于 2012-11-20T04:28:36.280 回答