STM32 HAL库串口发送多字节数据

串口发送16字节数据

int16_t MotorEncoder;
uint8_t low,high;
high=(uint8_t)(MotorEncoder>>8);
low=(uint8_t)(MotorEncoder&0xFF);
HAL_UART_Transmit(&huart1 , &low, 1, 0xff);
HAL_UART_Transmit(&huart1 , &high, 1, 0xff);

串口发送32字节数据

int32_t MotorEncoder;
uint8_t code[4];
code[0]=(uint8_t)(MotorEncoder>>24);
code[1]=(uint8_t)(MotorEncoder>>18&0xFF);
code[2]=(uint8_t)(MotorEncoder>>12&0xFF);
code[3]=(uint8_t)(MotorEncoder&0xFF);
HAL_UART_Transmit(&huart1 , code, 4, 0xff);
串口发送过程无关有无符号。
对于小数,定点数可以强制转换为对应的16/32位数据发送。

你可能感兴趣的:(STM32)