单片机(STM32)与上位机传输浮点数

单片机(STM32)与上位机传输数据的方法

在进行单片机程序的开发时,常常需要与其他设备进行通信。一种情况是与其他电路板通信,比如STM32主机与STM32从机通信,STM32从机与树莓派主机通信。一种情况是与上位机通信,上位机软件进行人机交互。这个时候需要进行数据传输,传输数据有两种方式,传输整形数据与直接传输浮点数据。

1. 传输整形数据

一种方法是传输整形数据,工业中常用的Modbus就是这种方式。这里以传输16位整形数据为例,一个数据就占用两个字节,可以是正数和负数。

测试代码:

int main()
{
   
    uint16_t me, you;
    uint8_t data[100];
    me = 120;
    data[0] = me >> 8;
    data[1] = me;
    
    you = (uint16_t)data[0] << 8 | (uint16_t)data[1];

    printf("you = %d", you);

    return 0;
}

出来的结果是一样的120

那么负数怎么办呢?其实是一样的。不管是uint16_t还是int16_t,在内存中的存储都是一样的,区别不在于写,而在于怎么读

int main()
{
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何为其然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值