【发布时间】:2011-07-09 22:40:28
【问题描述】:
我真的是 C 的新手,所以有点困惑。
我正在尝试将 int16 转换为 byte[] 数组。
我有一个像 -200 这样的 int16,我想将它转换为一个 byte[2] 数组,如下例所示。
Velocity = -200 = hex FF38 = [hex FF] [hex 38] = [255] [56]
我正在获取这些值并将它们传递到如下所示的串行端口,但我需要传递 int16,并让一个函数为我将其转换为 byte[]。
Serial.print(255,BYTE);
Serial.print(56,BYTE);
我找到了以下代码,但无法让它工作
Serial.print((velocity & 0xff00) >> 8, BYTE);
Serial.print(velocity & 0xff, BYTE);
有什么建议吗??任何帮助将不胜感激。
【问题讨论】:
-
在你的上一个例子中什么没用?
-
“无法正常工作”是什么意思?您是否尝试过使用 printf 或任何东西来查看
(velocity & 0xFF00)>>8的结果是什么? -
Serial.print... hmmm ... 你确定你的代码是C,你的编译器是C的吗?print是结构类型对象的函数指针部分吗?无论如何......为什么它不起作用?编译器消息是什么?发生什么或不发生什么? 帮助我们帮助您并确保语言 -
@pmg 好点,在我看来像 C++
标签: c++ serial-port serial-communication