C ++标准没有指定是否
char
类型是签名或未签名。在您的情况下,UNO使用签名字符,但截止使用未签名字符。
您可以直接指定变量的签名:
signed char pitch;
</code>
int8_t pitch;
</code>
通常,您应该更喜欢使用精确宽度类型,除非您有充分的理由不这样做。
使用I2C读取CMPS 10指南针时,音高包含在一个字节中
它在+/- 90度范围内。
使用char来接受结果并转换为int在
Arduino的
</跨度>
Uno’(CMPS_GET_PITCH); //请求并读取音高值
while(Serial1.available()&lt; 1);
pitch = Serial1.read();
}
在
Arduino的
</跨度>
DUE -1到-90的负数是255到165
这是在某处记录的,如何在不诉诸IF语句的情况下获得正确的负数?
鈥