python3串口通信——16进制数
在调试STM32与PC进行串口通信时,二者之间需要发送各种类型的数据,如uint_8、int16_t、float等等,需要将所有类型的数据转换成uint_8类型发送,同时上位机要能转换回来。
一.下位机
uint_8 型
发送:直接利用USART_SendData函数,通常配合检测发送结束位使用,如下:
void usart1_send_data(uint8_t num){
USART_SendData(USART1, num);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
接收:很简单,直接赋值即可。
int16_t型
发送:int16_t型涉及到补码,但是可以留到上位机解决,只要分别发送高低8位数就可以。
void send_int16_t(int16_t num){
uint8_t high_8, low_8;
low_8 = num & 0x00FF;
high_8 = (num>>8) & 0x00FF;
usart1_send_data(high_8);
usart1_send_data(low_8);
}
接收:定义一个int16_t类型的数,将接收到高低八位分别移位即可,贴的代码中的LOW和HIGH变量只是一个例子,参考这个代码改就行。
int16_t temp = 0;