请问430F5529如何串口发送浮点数

2019-07-15 15:34发布

需要实现功能:串口发送浮点数,到蓝牙->ios设备
设备:MSP430F5529
IDE:CCS 6.0
问题描述:
1. sprintf 和 printf函数打印出来即使是简单的整数,在ios上接受的也是乱码,已经包含头文件,并且连waring都没有
2. 调用的串口函数
例如SendData("Done ");可以成功打印出数据,但是不知道如何打印变量[C] 纯文本查看 复制代码
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];  }}3.试图利用一个变量指针
初始化一个
unsigned char str[10]="abc";  
SendData(str);
最终仍为乱码,不知道如何实现了,求助一下
4.最重要的,浮点怎么编程字符串?在无法使用strcpy之类的前提下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
ureuswerwr
2019-07-15 23:55
sprintf好像无法使用,打印出来是空的
不过问题解决了
用来一个浮点转字符串的程序,就解决了
但是想一些自带的windows自带的函数使用起来都有问题
感觉还是有些奇怪,像strcpy,printf,sprintf都无法正常使用,感觉很奇怪
附浮点转字符串程序
[C] 纯文本查看 复制代码
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] = '';   return str; }>

一周热门 更多>