在PIC单片机中,由于串口发送的数据只能为8位或者是9位,当我们想发一个双字节数时,就显得麻烦,发一串字符串时就显得更加困难。如果想发出10进制到PC机上时,就还要经过复杂的转换。那么现在有一种方法就可以解决上述的难题。这种方法可任意的发送你想发送的数据格式。
如我现在想做一个温度传感器采集外界温度,为了实时的监测外界的温度,和我的传感器工作情况,那我现在发数据的格式就定为 序号,月日,时间,温度,....,这样复杂的数据格式,同时还要保证在PC机上显示格式漂亮,那么单纯的利用单片机发数据到PC上好像是不可能实现的。那么现在我为大家分享一下我学习到的一个方法。
在PIC单片机的C30语言中,存在一个标准的C函数,Sprintf,Puts.Sprintf是将字符定义成自己想定义的格式后,放在一个字符串中,Puts是将一个字符串发送到输出流中,在VC++中调试时,这个流就是我们电脑的命令窗口,而在利用串口调试软件调试串口时这个流就可以是我们的串口调试软件。
例如,先定义一个字符串String,这个字符串尽量定义的比你发的数据要长一些,如果比你发送的数据字符串短的话会出现错误码的现象,在调用Sprintf(String,"(%d) %c %x .....,a,b,c......)里面参数的格式任你选择,这样你设置的字符串格式就存储在了Spring中,在利用Puts(String)函数输出即可,你会发现你定义的字符串会很漂亮的出现在你的串口调试软件窗口中,当然,这也有可能跟串口调试软件有关系,希望大家可以自己去尝试。这样非常方便我们可以通过PC机直观的了解当前的参数变化。
同时,利用这两个函数时要包含头文件#include,这样使我们的程序内存增加了几倍,所以这种只适合我们在单纯的调试串口时使用。
文章评论(0条评论)
登录后参与讨论