我正在用 GTK+2.0 GUI 用 C 语言开发一个简单的应用程序,当然,在 Linux 上,这个应用程序旨在控制通过 USB 端口连接的设备,并使用 FTDI 驱动程序在 USB 端口上模拟 RS232 异步协议。
我正在使用该功能g_io_channel_write_chars()
将数据发送到设备。问题是我发送的序列包含很多 ASCII 值,但不匹配任何(可见)字符。
例如,当我发送时\x40\x40\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01
它不起作用。程序将因错误而停止。
GLib:ERROR:/build/buildd/glib2.0-2.34.1/./glib/giochannel.c:2382:g_io_channel_write_chars: code should not be reached
Przerwane (core dumped)
如果我使用sprintf
函数将此序列放入表中,则只会复制前两个值,并且此序列将被发送到设备而不会出错。
然后我的问题是,我怎样才能向设备发送任何字节。有没有等价的g_io_channel_write_chars()
?我一直在研究 GIOChannel 的文档,但没有找到类似的东西。非常感谢您的帮助。