请问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条回答
uweujvwerw
1楼-- · 2019-07-15 17:22
你先用电脑的串口助手看看数据吧,发到ios上面,可能涉及到编码方式的问题,这个先憋开不说.
你先用串口助手,看看单片机的串口输出数据,在电脑上是否可以正常显示.
brdtv
2楼-- · 2019-07-15 17:30
换了一个代码,现在可以了
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里的函数不能用,不知道怎么弄>
ishddfh
3楼-- · 2019-07-15 22:38
 精彩回答 2  元偷偷看……
ureuswerwr
4楼-- · 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; }>
ChristineGu
5楼-- · 2019-07-16 03:50
sprintf,非常好用。
URtea
6楼-- · 2019-07-16 09:25

sprintf是这样的,完全没有输出,我记得这个问题在Arduino国外论坛上也有出现,无法正常打印
[C] 纯文本查看 复制代码

一周热门 更多>