本帖最后由 风之追逐 于 2015-10-27 16:55 编辑
功能:
通过电脑主机串口(笔记本可以用USB转串口线),读取 单片机恒温器的温度,并保存至电脑D盘的test文件夹中(文件夹不存在自动创建)。TXT文件名为运行程序后,点击开始按钮的时间,精确到秒。
说明:(程序版本 labview2014)
1.串口号,默认COM1,也可选择其他已有串口
2.温度1,为环境温度,供恒温器控温参考
3.温度2,为恒温器温度
4.温度调整,可修改恒温器平衡温度值,限制范围0~99℃
5.加热状态,显示恒温器的加热器是否工作
6.开始按钮,点击后,程序创建TXT文件,并每隔2秒钟以ASCII码形式向下位机发送AABB3520151027105620
数据说明:
AABB是起始码,供单片机判断接收到的数据是否是有效数据
35是要求恒温器当前应保持的平衡温度
20151027105620为发送数据时的当前系统时间,也可供单片机系统进行时间校正或参考
单片机响应:
单片机接收到有效数据后,就会以ASCII码形式上传环境温度值(温度1)和恒温器温度值(温度2),
例如:25.6 35.0。也可以用串口调试助手模拟单片机系统,测试程序。温度1和温度2中间用一个空格隔
开,设置成每隔2秒钟自动发送就可以了。
电脑响应:
程序接收到温度数据后,保存至TXT文件,并自动添加序号。序号范围1~99999,超出后重新从1开始
累加。
7.停止按钮,点击后,程序关闭TXT文件。
8.打开电脑D盘test文件夹中的TXT文件,查看已保存的温度数据吧 ^-^
补充说明:程序中用到了局部变量,很多人都说最好别用,要另想办法。我在程序中使用“隐藏的序号”这个变量
时,确实出过一次问题:当序号超出最大值时,它没有从1重新开始循环,而是继续累加了。而且程序运行
时,也没有错误报告。后来调整了一下,倒是正常了。不过确实感到变量这个东西要谨慎使用,提醒新手
们注意吧!!!当然,我们也不要被它吓死。有精力和兴趣的话,我们可以研究何时使用它?如何用好
它?既然存在了这么久,必然有其价值。
23
|
|
|
|
laomasocool 发表于 2016-3-25 15:05
楼主您好,你这个帖子很好,但我有一个问题,你使用写入文本文件函数是如何做到每次写入数据的时候不覆盖原有数据的呢?是通过在字符串后面连接一个行结束常量么?我按照下图1你的vi建立了一个图2的小vi做实验,发现运行完只有一行数据,这是什么原因呢?求解答!!!! ...
程序不严谨,在while循环外用"打开/创建/替换文件"函数,连接""写入文本文件"就可以了。而且程序结束的话就把打开的文件关闭。
只用一个"写入文本文件"函数,可能程序编译完执行时,每次都创建或替换了"666.txt"文件(只是我的猜测)。
|
|
|
|
|
风之追逐 发表于 2016-3-28 09:45
程序不严谨,在while循环外用"打开/创建/替换文件"函数,连接""写入文本文件"就可以了。而且程序结束的话就把打开的文件关闭。
只用一个"写入文本文件"函数,可能程序编译完执行时,每次都创建或替换了"666.txt"文件(只是我的猜测)。
多谢楼主!!!! ![](https://staticbbs.elecfans.com/static/image/smiley/default/smile.gif) ![](https://staticbbs.elecfans.com/static/image/smiley/default/smile.gif) ![](https://staticbbs.elecfans.com/static/image/smiley/default/smile.gif) {:1:}{:1:}按照您说的方法确实解决了问题!以后还要向您多多请教!~
|
|
|
|
|
我还有个问题,就是我没搞懂你是怎么完成串口接收数据到十进制的转换的,我上网查了查相关函数还是不太明白,您能给我简单讲解一下么?另外您能给我讲一下串口接收的数据未处理前是什么格式的么?
|
|
|
|
|
http:// pan.baidu.com/share/link?
|
|
|
|
|
不错,很好的软件,正需要呢,谢谢楼主!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
应该不错 这种程序很多项目上都是需要的!!!!!!!!!!!!!!!!
|
|
|
|
|
很不错的资料,我也是新手,现阶段就是看程序和labview中的例子程序,收获很大
|
|
|
|
|