专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

不用网络照样可以打字聊天

作者:佚名   来源:本站原创   点击数:  更新时间:2013年05月25日   【字体:



    前些时用刘洋的电脑在网上看了一个别人用
nRF24L01做的无线聊天的东东,可以双方发送字符或是汉字。那是一看似乎就知道了别人是怎么实现的:单片机串口收发+nRF24L01的无线数据传输。当时还是觉得蛮好玩的。在那之前我就把nRF24L01+(nRF24L01的升级版)的的双向无线数据交换弄通了,就得在就是加个串口就好了。接下来了的一段时间在弄我的无线小车也就没有弄这玩意,不过还是放在心里了。这个月初,小车弄好了,功能比较简单,无线控制,只有前进、后退,左、右,没有加入速度的控制;本来想加入ADXL345做个重力感应的,后来觉得ADXL345我还不能怎么好好的驾驭它,不知道怎么对读出来的数据进行处理,这个功能就没有加。所以就做成了前段时间上传的视频里的那样的了。后来焊接了三个nRF24L01+的小板子,想做做多机通信或是玩玩它的跳频。这个搞了几天,可以一个发送两个接收了,手里也就这么多硬件,只能这样了。这个暂时放下了。又在这个星期弄那个视频看见的东西了:无线串口通信。花了两天在STC15L204EA上调试串口,由于STC15L204EA没有独立的串口模块,只能模拟串口了,在网上找到了模拟串口的程序,也看了STC的数据手册里介绍的模拟串口部分,感觉模拟串口可以完成数据的收发,但是不怎么好用,搞了两天就没有弄模拟串口了,一想自己还有两个两个以前在汉口解放公园那里买的两个STC12LE5A60S2的最小系统板,就用它了。这个不用焊接电路,只需要用杜邦线连接就可以了,串口的程序自己以前也写得有,nRF24L01+的收发的程序也早就弄好了。感觉只需要把两个有机的结合在一起就可以了。但是,不是这样的,主要是串口。以前的串口程序可以发送字符串到串口调试助手上去,但是接收我需要把接收的字符串存入一个数组里去,而且数组的长度有限制(我只会让nRF24L01+一次发送32字节的数据,它一次最多也只可以发送32字节的数据,超过32字节的就不会操作了,主要是不知道怎么样将从串口接收到的超过32字节的数据存入多个数组里面再发送出去的数据的长度就是接收到的长度),再将从串口接收到了的字符串存入数组里面花了一点时间,但是还是发现有问题。一是:当数组长度小于等于32时,很好操作,但是超过32时再发送出去的就是超过的部分的数据,前32个我把它清零了,后面的没有清零。二是:当我人为的规定了一次发送的数据的长度,但是当一次的数据长度小于我人为规定的长度再怎么发送出去呢?还好我想到了定时器,思路:当数据大于32时,发送这个数据的前32个;当数据小于32时,我们打开定时器,定时时间大于接收一串字符串的时间,再在定时时间到了后把数据发送出去。定时器中断的操作也是在做老师的项目时经常用到了,我就这么的写了代码,发现奇迹出来了:达到了想象的效果。但是还有一个一直成在的问题就是当数组长度大于32时,它怎么就会把超出的部分发送出去?后来就做了一个使用说明的东西,按照说明来操作就OK了,自己做的东西,说明规定当然由我定了,呵呵……就这么的串口算是弄到了理想效果。但是问题又来了。我的PL2302的驱动装不好,以前我的电脑就是用的这个驱动,这就导致我只能做一个的了,不能两个同时操作。没办法,只好想办法解决驱动的问题,搞了一天没有搞好,驱动有问题我也无解了,再就是来焊接MAX3232串口电路了,焊接了两次没有焊接好,没办法,在寝室弄实验条价差没有工具检测,第二次是昨天晚上上完了选修课回来焊接的,于放弃了。前几天找彭博华借了一个CP2102的下载器,我的电脑装CP2102的驱动装不好,昨天晚上又找吕静借来了电脑,她的电脑我上次使用时装好了CP2102的驱动。昨天晚上焊接电路前在她的电脑上试了一下CP2102下载器,好使。今天上午的12节课去上刘辉的工业计算机去了,回来就来把串口部分和nRF24L01+的收发结合起来。好在在我借到彭博华的CP2102下载器之前我的大脑里就有一个思路怎么结合两个部分了。下课回了没有花多少时间就把它们给弄好了,11点钟吃中饭之前就好了,效果出来了,可以和别人的视频里演示的一样了。就这么样困扰快一个星期的问题解决了。找黄品章借来了小米拍视屏,请了小强做摄影师。在此一并感谢提到的各位,谢谢你们!但是不管怎么拍,我的地理方位不怎么好,有点反光,一个人操作两台电脑也不好操作,视频拍的比较乱,就截图吧。就这么样,我的无线通信也做完了,也达到了别人视频里的效果。传输距离在空旷条件下60米没有问题。自己不会用VB,看见那语言就不自在,所用用的还是STC官网提供的串口工具。

最后说点现在的我吧。最近比较累也感觉心里比较憋屈。上个星期五的下午去实验室,和研二的学长聊天聊着就几句话没有跟上我就睡着了,还是坐在椅子上,大脑里潜意识的还有事要做,所以一会后还是醒了。前天星期四的下午三点多去实验室没事做,由于中午在寝室一直nRF24L01+的程序到STM32上去,所以没有睡觉,就又在椅子上睡觉了这次没上次睡得深,四点多老师来了,说了他的项目的要求,接着从下午四点多开始按照老师的要求弄项目,和研二的学长一起弄,弄到晚上10过一点就弄得目测达到了老师要求的效果,没有用示波器去检测波形也没有太多的实验装置去实验8路信号,只有在现有的条件下做2路的实验,其中还有1路是模拟的。对于这个项目,老师的要求总在变,就拿那个步进电机的部分来说,同一个东西,要求变了好几次,弄好了他说不行又再换,最后的结果是按几种方法弄去弄来还是用的最初的那种方法。夏文帮别人做的毕业设计,他有不清楚的地方他来问我,又要帮他弄那,他的那个红外发射的程序这几天也没有看。前几天王可帮别人做的一个在Proteus上弄一个流水灯+数码管的仿真,他来求助我,跟他说了一下,感觉他不怎么会,在晚上洗完澡后又来帮他做,先做了一次电路没有保存又再画,写完程序仿真好了,也不知道他到底要达到一个什么效果,就按照我做的发个他了,做完了都到了凌晨30几分。结果的结果是昨天下午又来找我叫我帮他装Proteus,前几天就把软件给他了。那时我在玩游戏。………………贴上一条前几天看见的微博:“【程序员的脾气】一日,一技术支持给程序员打电话,扯了半天,程序员有点不耐烦了。高潮在最后,技术支持问,“那这个ftp怎么用?”程序员彻底怒了,“我一个30多岁的人哪有时间告诉你ftp怎么用!”咣当,把电话给挂了。真人真事,整层楼都听见了,楼主憋到内伤。(via @ICodeYou )”。最近真的比较忙,实验室去得少,前几天去老师都在说我,又是考试复习又是上课,在寝室还有做点我自己的小玩意。心里怎么憋屈就不说了,当然和他们没关系,不要误解。
 



程序



演示

关闭窗口

相关文章