将int8_t作为uint8_t发送而不更改位模式

时间:2018-02-27 22:39:25

标签: c casting uart

我正在使用PIC微控制器以字节块的形式通过UART连接发送一些信息。我发送的一些信息是int8_t类型。我希望在发送信息时保留位模式,但无论是否显式转换,当int8_t为负值时,基础位模式会发生变化。库函数声明大致如此,并接受uint8_t来发送数据,因此重写这是我不想做的事情。

作为参考,UART发送功能声明如下:

void EUSART1_Write(uint8_t txData);

如何在不使用上述函数更改位模式的情况下发送类型为int8_t的数据?我认为这将是某种铸造......

1 个答案:

答案 0 :(得分:0)

制作指针然后转换指针,然后原始数据不会被转换

EUSART1_Write(*(uint8_t*)(&signed_data_that_you_want_to_send));