需要实现功能:串口发送浮点数,到蓝牙->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之类的前提下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你先用串口助手,看看单片机的串口输出数据,在电脑上是否可以正常显示.
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里的函数不能用,不知道怎么弄>
不过问题解决了
用来一个浮点转字符串的程序,就解决了
但是想一些自带的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; }>
sprintf是这样的,完全没有输出,我记得这个问题在Arduino国外论坛上也有出现,无法正常打印
[C] 纯文本查看 复制代码
一周热门 更多>