OpenEdv-开源电子网

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

430F5529 如何串口发送浮点数(浮点如何变成字符串)

[复制链接]

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-6-19
在线时间
0 小时
发表于 2014-6-19 20:04:10 | 显示全部楼层 |阅读模式
需要实现功能:串口发送浮点数,到蓝牙->ios设备
设备:MSP430F5529
IDE:CCS 6.0
问题描述:
1. sprintf 和 printf函数打印出来即使是简单的整数,在ios上接受的也是乱码,已经包含头文件,并且连waring都没有
2. 调用的串口函数
例如SendData("Done\n");可以成功打印出数据,但是不知道如何打印变量
[mw_shl_code=c,true]void SendData(unsigned char *p) { unsigned int n; for(n=0;p[n]!=0xff;n++) { while (!(UCA0IFG&UCTXIFG)); // USART0发送UTXIFG0=1,表示UTXBUF准备好发送一下字符 UCA0TXBUF = p[n]; } }[/mw_shl_code]
3.试图利用一个变量指针
初始化一个 
unsigned char str[10]="abc";  
SendData(str);
最终仍为乱码,不知道如何实现了,求助一下
4.最重要的,浮点怎么编程字符串?在无法使用strcpy之类的前提下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-6-19 22:26:25 | 显示全部楼层
你先用电脑的串口助手看看数据吧,发到ios上面,可能涉及到编码方式的问题,这个先憋开不说.
你先用串口助手,看看单片机的串口输出数据,在电脑上是否可以正常显示.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-6-19
在线时间
0 小时
 楼主| 发表于 2014-7-2 23:36:18 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
换了一个代码,现在可以了
void UartTX_Send(unsigned char *Data,int len)
{
int j;
for(j=0;j<len;j++)
{
while (!(UCA0IFG&UCTXIFG));
UCA0TXBUF =*Data++;
}
}

设置的的
char a[10]="3.14159";
但是还是哪个问题,如何把一个浮点数,赋值到 a中?
stdio.h里的函数不能用,不知道怎么弄>
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-7-2 23:51:18 | 显示全部楼层
回复【3楼】lovin:
---------------------------------
 sprintf。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-6-19
在线时间
0 小时
 楼主| 发表于 2014-7-3 00:14:31 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
sprintf好像无法使用,打印出来是空的
不过问题解决了
用来一个浮点转字符串的程序,就解决了
但是想一些自带的windows自带的函数使用起来都有问题
感觉还是有些奇怪,像strcpy,printf,sprintf都无法正常使用,感觉很奇怪

附浮点转字符串程序

[mw_shl_code=c,true]char *F2S(double d, char* str) { char str1[40]; int j=0,k,i; i = (int)d; //浮点数的整数部分 //d = d-(int)d; while(i>0) { str1[j++] = i%10+'0'; i /= 10; } for(k=0;k<j;k++) str[k] = str1[j-1-k]; // str[j++] = '.'; d -= (int)d; for(i=0;i<10;i++) { d *= 10; str[j++] = (int)d+'0'; d -= (int)d; } while(str[--j]=='0'); str[++j] = '\0'; return str; }>[/mw_shl_code]


回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-7-3 00:17:50 | 显示全部楼层
sprintf,非常好用。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-6-19
在线时间
0 小时
 楼主| 发表于 2014-7-3 00:39:01 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------


sprintf是这样的,完全没有输出,我记得这个问题在Arduino国外论坛上也有出现,无法正常打印
[mw_shl_code=c,true][/mw_shl_code]
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-7-3 23:43:12 | 显示全部楼层
回复【7楼】lovin:
---------------------------------
这个我就不晓得了...
你用的arduino????
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-6-19
在线时间
0 小时
 楼主| 发表于 2014-7-5 20:04:23 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
不是,是MSP430
只是google的时候看到有人说Arduino 也有这个问题
听说sprintf,strcpy之类的东西非常占用资源,由于msp430 ram太小的原因
还有的说需要更改 putchar函数
回复 支持 反对

使用道具 举报

56

主题

289

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2012-11-16
在线时间
65 小时
发表于 2014-11-25 14:11:57 | 显示全部楼层
学习了 !!!!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-3-9
在线时间
2 小时
发表于 2016-3-9 18:49:29 | 显示全部楼层
本帖最后由 muslimsali 于 2016-3-9 18:51 编辑

sprintf非常好用的呀;如果只是为了发送浮点数的码,定义一个联合
浮点数,四个字节
根据上位机的大小端,选择四个字节的发送顺序,上位机同样用联合处理;
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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