python读取串口16进制数_python3串口通信——16进制数

本文介绍了如何使用Python3进行串口通信,特别是在STM32与PC间交换16进制数。针对uint_8、int16_t和float类型的数据,文章详细讲解了在下位机(STM32)和上位机(Python)的发送与接收方法,包括数据类型的转换和补码处理。
摘要由CSDN通过智能技术生成

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值