关于单片机通过串口发送浮点数信息
2015-07-27 16:16
232 查看
最近弄一个小东西的时候,需要将AD采集的数据,通过串口发送上位机。由于还得在下位机部分显示出来,所以这个AD采集的数据转换之后发送到串口,比较容易点。但是问题来了,以前的串口,只有从GPS模块接收的信息是浮点类型外。其他的东西,都只是把字符类型或者字符串类型的数据发到串口。
查阅了一点资料,这里是资料的链接。
单片机将浮点数从串口发送出去:
1.http://www.51hei.com/bbs/dpj-31223-1.html
采用了将浮点数转换为四个字节的数据,放到数组中,发送到串口。
2.http://blog.sina.com.cn/s/blog_a8576df901011efv.html
加入了标准输入输出头文件,可以通过对TI标志位的判断,直接对数据进行串口输出。
同时自己进行了一个测试,觉得第二种方法比第一种方法来的简单。但是第二种多了一个头文件,大概估计了一下,觉得第二种方法生成的hex文件是比第一种大的。当然现在很多存储都是够的。倒也不是什么大问题,不过大家进行方法选择的时候,可以进行一些测试,以免存储不够的情况出现。
下面是我进行测试的代码
查阅了一点资料,这里是资料的链接。
单片机将浮点数从串口发送出去:
1.http://www.51hei.com/bbs/dpj-31223-1.html
采用了将浮点数转换为四个字节的数据,放到数组中,发送到串口。
2.http://blog.sina.com.cn/s/blog_a8576df901011efv.html
加入了标准输入输出头文件,可以通过对TI标志位的判断,直接对数据进行串口输出。
同时自己进行了一个测试,觉得第二种方法比第一种方法来的简单。但是第二种多了一个头文件,大概估计了一下,觉得第二种方法生成的hex文件是比第一种大的。当然现在很多存储都是够的。倒也不是什么大问题,不过大家进行方法选择的时候,可以进行一些测试,以免存储不够的情况出现。
下面是我进行测试的代码
[code]#include<reg52.h> #include<stdio.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int float ad_vo=9.0987; void init() { //设定T1定时器工作方式2, T0定时器工作方式1 TMOD = 0x21; //为T0定时器装入初值 TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) % 256; //为T1定时器装入初值 TH1 = 0xfd; TL1 = 0xfd; //ET1 = 1; 这里不需要开启定时器1中断,因为定时器1工作在方式2,为8位自动重装方式,进入中断也无事可做 //启动T1定时器 TR1 = 1; //开启定时器0中断 ET0 = 1; //启动定时器0 //TR0 = 1; TR0的初始化放在主函数的while中,方便检测到串口发送数据后的1s延时,即延时1s从串口发送完数据开始 //设定串口工作方式 //11位异步收发,含9位数据,波特率可变,且由定时器1溢出率控制 SM0 = 1; SM1 = 1; //容许串口中断 REN = 1; //开启总中断 EA = 1; //开启串口中断 ES = 1; } void delay(uint count) { uint i=0,j=0; for(i=count;i>0;i--) for(j=110;j>0;j--); } void main() { while(1) { delay(1000); init(); ES=0; TI=1; printf("%f\n",ad_vo); printf("\n\n\n\n"); while(!TI); TI=0; ES=1; delay(1000); } }
相关文章推荐
- POJ - 2478 - Farey Sequence (欧拉函数)
- CNTV视频回看下载地址
- java文件上传带进度条的
- Hyper-v无法启动虚拟机,因为虚拟机管理程序未运行?
- 表格标题 caption
- 关于 MySQL 密码你应该知道的那些事
- 树的重心
- ASP.NET OWIN OAuth:遇到的2个refresh token问题
- 在Django的模型和公用函数中使用惰性翻译对象
- 逗号运算符
- POJ 2443 Set Operation
- Android 环境变量访问类
- Angular controller, services, scopes fundamental concept
- 2015 Multi-University Training Contest 2 1004 Delicious Apples(DP)
- A - Accurately Say "CocaCola"! --- (first qualifying)
- json的使用
- [POJ 1742] Coins 男人八题(多重背包)
- 网络流最小费用最大流建图些许方法
- 拖动无标题栏的窗口
- Python网络编程Demo