打印
[STM32F4]

串口发送到上位机上如何操作

[复制链接]
1466|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
androidbus|  楼主 | 2022-8-16 21:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
让AD来采样电压,然后通过串口发送到上位机上。因为我采的电压是带有小数的,比如1.31、0、98、1.5像这样就不知道怎么发送啦!望请那位高手帮帮我啊!

使用特权

评论回复
沙发
litengg| | 2022-8-16 21:37 | 只看该作者
能发的,比如发个AB或11,串口调试助手上面都能显示AB和11

使用特权

评论回复
板凳
qiangweii| | 2022-8-16 21:37 | 只看该作者
串联电阻可以增强电磁兼容性

使用特权

评论回复
地板
qiangweii| | 2022-8-16 21:40 | 只看该作者
串口都是按照字符和字符串发送数据的。

使用特权

评论回复
5
shashaa| | 2022-8-16 21:41 | 只看该作者
如果是16进制数,就没有办法看到小数点“.”。

使用特权

评论回复
6
xia00| | 2022-8-16 21:46 | 只看该作者
字符:从A开始,大写时为0x41递增,小写时0x61递增。比方“A”0x41、“B”0x42、“a”0x61、“b”0x62。

使用特权

评论回复
7
hfdy01| | 2022-8-16 21:47 | 只看该作者
不知道楼主是要传数据还是为了显示,如果是为了显示转换成文字就可以了。将每一位数字及符号转换成字符送回上位机就可以了

使用特权

评论回复
8
CallReceiver| | 2022-8-16 21:52 | 只看该作者
如果是想方便地传数据,float型是32位,double型是64位,转换成整数发出去,在上位机上再转换回来就可以了。

使用特权

评论回复
9
boy1990| | 2022-8-16 21:53 | 只看该作者
给你个参考
01.float data_to_send = 1.23;

02.byte *p;

03.

04.p = (byte *)&data_to_send;

05.uart_send_byte(*p++);

06.uart_send_byte(*p++);

07.uart_send_byte(*p++);

08.uart_send_byte(*p);

使用特权

评论回复
10
sourceInsight| | 2022-8-16 22:03 | 只看该作者
可以采用ASCII来来处理,因为小数点有对应的数据。

使用特权

评论回复
11
bbapple| | 2022-8-16 22:03 | 只看该作者
用4个字节的无符号整数应该绰绰有余了,把小数放大转换成整数。

使用特权

评论回复
12
handleMessage| | 2022-8-16 22:09 | 只看该作者
可以放大,比如1.23,就发123,上位再做相应处理。。

使用特权

评论回复
13
zhouhuanの| | 2022-8-16 22:09 | 只看该作者
先把二进制改为十进制,然后用标准输入输出函数输出,就好了

使用特权

评论回复
14
wanglaojii| | 2022-8-16 22:14 | 只看该作者
直接发AD值,然后上位机做处理,电脑的处理能力比单片机好多了,单片机省去了计算。

使用特权

评论回复
15
laozhongyi| | 2022-8-16 22:15 | 只看该作者
使用union共用体,把float转换为char型,再发出去。

使用特权

评论回复
16
Edisons| | 2022-8-16 22:19 | 只看该作者
可以格式化为字符后再发。

使用特权

评论回复
17
_gege| | 2022-8-16 22:20 | 只看该作者
读取的时候只要知道第几位是小数就可以的。

使用特权

评论回复
18
Mozarts| | 2022-8-16 22:23 | 只看该作者
发送字符就行的。或者使用spritf。

使用特权

评论回复
19
Listate| | 2022-8-16 22:24 | 只看该作者
小数当然是要做转化才能行,因为通讯都是ASCII字符,必须先将小数扩大10倍,然后转化成16进制数发就OK!

使用特权

评论回复
20
gygp| | 2022-8-17 16:06 | 只看该作者
只要配置好波特率即可。     

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

181

主题

1597

帖子

3

粉丝