printf原始数据 - 获取printf或print以不发送字符

Zac*_*ack 3 c printf serial-port fpga serial-communication

我有一个Xilinx Virtex-II Pro FPGA板,通过RS232连接到iRobot Create.

iRobot将字节整数流作为命令.

我发现printf实际上会通过串口发送(Hypterminal能够接收我打印的任何东西),并且我认为我可以使用printf将我的数据发送到iRobot.

问题是printf似乎格式化了ascii输出的数据,但我真的希望简单地发送数据raw.

我喜欢这样的东西:

printf(%x %x %x, 0x80, 0x88, 0x08);
Run Code Online (Sandbox Code Playgroud)

但是不是十六进制格式化,我希望它是发送的实际0x80值.

有任何想法吗?

Ker*_* SB 9

用途fwrite:

char buf[] = { 0x80, 0x80, 0x80 };

fwrite(buf, 1, sizeof(buf), stdout);
Run Code Online (Sandbox Code Playgroud)

你可以写任何文件句柄; stdout只是一个镜像你的例子printf.

在Posix系统上,您还可以使用write写入文件描述符的特定于平台的函数.


Sop*_*ert 9

请改用格式"%c%c%c".