TI中文支持网
TI专业的中文技术问题搜集分享网站

请问怎么能把存储器中的单精度浮点型数据写到UART?

评估板:EVMC6678L

仿真环境:CCS5.2.1

Platform_Library提供的platform_uart_write函数一次只能将一个字节写到UART,而单精度浮点型数据有四个字节,请教大神们应该怎么将单精度浮点型数据拆分开来一个字节一个字节送入UART?

不胜感激!!!O(∩_∩)O

King Wang1:

你用char*的指针指向float类型数据,然后传递4个char,在接收端将这4个byte组合起来,用float*指针读出来就可以了。

heng yin:

回复 King Wang1:

King Wang1你好,

C语言里char*的指针不能指向float类型数据啊,比如说我这样编写程序:

main()

{

       float a[100];

       char *p;

       p=a;

       printf("%d\n",*p);

}

一编译就出错啊,纠结。。。

Pengzhen Du:

回复 heng yin:

float *p;

char src[4] ; // 你从串口拿来的数据..

p = (float*)src; // 此处注意大小端..可能要用与或操作.

fprintf(stdout, "%f\n", *p); // 已经拿到了…..只是让编译器怎么去认识它….明白了吗

  另:  请大哥教我入门…好不…C方面的问题..我帮你搞定…你帮我入门就行..能有个HELLOWORLD输出来就好了…….

这半个月了..没有正经运行过任何一个程序..不是配置挂..就是编译挂…要不运行挂…要不…..下不进去…..实在没信心了….

我QQ  26273826…..请大哥赐教呀….

Pengzhen Du:

好事做到底…如果大小端和你约定不同….程序如下

float *p;

unsigned char tmp;

unsigned char src[4] ; // 你从串口拿来的数据..

// 下面调约定..你完全可以用int与或来操作..更快..但难懂一些

tmp = src[0]; src[0] = src[3]; src[3] = tmp;

tmp = src[1]; src[1] = src[2]; src[2] = tmp;

p = (float*)src; // 此处注意大小端..可能要用与或操作.

fprintf(stdout, "%f\n", *p); // 已经拿到了…..只是让编译器怎么去认识它….明白了吗

赞(0)
未经允许不得转载:TI中文支持网 » 请问怎么能把存储器中的单精度浮点型数据写到UART?
分享到: 更多 (0)