[MCU] 不知道怎么发送

[复制链接]
2292|49
 楼主| lizye 发表于 2020-5-10 16:45 | 显示全部楼层 |阅读模式
430的1232芯片,让AD来采样电压,然后通过串口发送到上位机上。因为我采的电压是带有小数的,比如1.31、0、98、1.5像这样就不知道怎么发送啦!望请那位高手帮帮我啊!在下先谢谢!
 楼主| lizye 发表于 2020-5-10 16:50 | 显示全部楼层
别的都设好啦,能发的,比如发个AB或11,串口调试助手上面都能显示AB和11
yszong 发表于 2020-5-10 16:54 | 显示全部楼层
你AD采样出来的还是小数吗?
zhuhuis 发表于 2020-5-10 16:56 | 显示全部楼层
转化为字符串再发送就可以了,啦啦~~~
zwll 发表于 2020-5-10 16:59 | 显示全部楼层
串口都是按照字符和字符串发送数据的
huangchui 发表于 2020-5-10 17:02 | 显示全部楼层
你的“AB”、“11”是16进制数还是ASCII码?
shimx 发表于 2020-5-10 17:06 | 显示全部楼层
对,如果是16进制数,就没有办法看到小数点“.”。
 楼主| lizye 发表于 2020-5-10 17:10 | 显示全部楼层
哦,那咋办
jiaxw 发表于 2020-5-10 17:14 | 显示全部楼层

16进制转ASCII码的办法:

1、数值:加0x30。比方“9”,9+0x30=0x39

2、字符:从A开始,大写时为0x41递增,小写时0x61递增。比方“A”0x41、“B”0x42、“a”0x61、“b”0x62

3、其它:小数点0x2e、回车0x0d、换行0x0a
 楼主| lizye 发表于 2020-5-13 22:05 | 显示全部楼层
哦。。。差不多
zhaoxqi 发表于 2020-5-13 22:13 | 显示全部楼层
不知道楼主是要传数据还是为了显示,如果是为了显示转换成文字就可以了。将每一位数字及符号转换成字符送回上位机就可以了。如7楼所说。
 楼主| lizye 发表于 2020-5-13 22:17 | 显示全部楼层

想方便地传数据呢
zhenykun 发表于 2020-5-13 22:21 | 显示全部楼层
如果是想方便地传数据,float型是32位,double型是64位,转换成整数发出去,在上位机上再转换回来就可以了
 楼主| lizye 发表于 2020-5-13 22:24 | 显示全部楼层
哦,懂了,PC和430都是小端的吧
zhenykun 发表于 2020-5-13 22:29 | 显示全部楼层
是的,给你个参考
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);
wuhany 发表于 2020-5-13 22:33 | 显示全部楼层
可以采用ASCII来来处理,因为小数点有对应的数据
heweibig 发表于 2020-5-13 22:42 | 显示全部楼层


类型强制转换就可以了
dengdc 发表于 2020-5-13 22:48 | 显示全部楼层
用4个字节的无符号整数应该绰绰有余了,把小数放大转换成整数。
yszong 发表于 2020-5-13 22:52 | 显示全部楼层
对,可以放大,比如1.23,就发123,上位再做相应处理,呵呵
jlyuan 发表于 2020-5-13 22:55 | 显示全部楼层
放大了发送,上下位机协定好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

9757

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部