OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4085|回复: 3

HC05通信问题

[复制链接]

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-7-11
在线时间
0 小时
发表于 2014-9-13 00:33:59 | 显示全部楼层 |阅读模式
5金钱
希望把float的数据发出,比如发出一个float,先把float转成4个char

union f2b
{
    float f;
    signed char b[sizeof(float)];
} Float2Byte;

之後发出b到HC05,接收端发现收到的数据长度reclen不是6(包括\r\n),reclen不是固定数字,而USART2_RX_BUF也跟发出的b不一样,请问问题在那?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-9-14 00:38:44 | 显示全部楼层
你直接赋值给f,测试下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-7-11
在线时间
0 小时
 楼主| 发表于 2014-9-14 23:57:26 | 显示全部楼层
Float2Byte.b[0]=0x51;
Float2Byte.b[1]=0x52;
Float2Byte.b[2]=0x53;
Float2Byte.b[3]=0x54;
u2_printf(Float2Byte.b);
u2_printf("\r\n");

这样做测试,一半机会reclen=6, 其馀reclen=1。只收到b[0],串口显示为"Q"?
Timer 4加长至200ms但没甚麽分别!
回复

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-7-11
在线时间
0 小时
 楼主| 发表于 2014-9-15 00:30:24 | 显示全部楼层
Float2Byte.b[0]=0x51; //Q
Float2Byte.b[1]=0x52; //R
Float2Byte.b[2]=0x53; //S
Float2Byte.b[3]=0x54; //T

u2_printf("%c", Float2Byte.b[0]);
delay_ms(2);
u2_printf("%c", Float2Byte.b[1]);
delay_ms(2);
u2_printf("%c", Float2Byte.b[2]);
delay_ms(2);u2_printf("%c", Float2Byte.b[3]);
delay_ms(2);

现在这样可发送"QRST",reclen为6。但一半时间reclen=1,只显示"Q"
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 21:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表