不用網(wǎng)絡(luò)照樣可以打字聊天
前些時(shí)用劉洋的電腦在網(wǎng)上看了一個(gè)別人用nRF24L01做的無線聊天的東東,可以雙方發(fā)送字符或是漢字。那是一看似乎就知道了別人是怎么實(shí)現(xiàn)的:?jiǎn)纹瑱C(jī)串口收發(fā)+nRF24L01的無線數(shù)據(jù)傳輸。當(dāng)時(shí)還是覺得蠻好玩的。在那之前我就把nRF24L01+(是nRF24L01的升級(jí)版)的的雙向無線數(shù)據(jù)交換弄通了,就得在就是加個(gè)串口就好了。接下來了的一段時(shí)間在弄我的無線小車也就沒有弄這玩意,不過還是放在心里了。這個(gè)月初,小車弄好了,功能比較簡(jiǎn)單,無線控制,只有前進(jìn)、后退,左、右,沒有加入速度的控制;本來想加入ADXL345做個(gè)重力感應(yīng)的,后來覺得ADXL345我還不能怎么好好的駕馭它,不知道怎么對(duì)讀出來的數(shù)據(jù)進(jìn)行處理,這個(gè)功能就沒有加。所以就做成了前段時(shí)間上傳的視頻里的那樣的了。后來焊接了三個(gè)nRF24L01+的小板子,想做做多機(jī)通信或是玩玩它的跳頻。這個(gè)搞了幾天,可以一個(gè)發(fā)送兩個(gè)接收了,手里也就這么多硬件,只能這樣了。這個(gè)暫時(shí)放下了。又在這個(gè)星期弄那個(gè)視頻看見的東西了:無線串口通信?;藘商煸赟TC15L204EA上調(diào)試串口,由于STC15L204EA沒有獨(dú)立的串口模塊,只能模擬串口了,在網(wǎng)上找到了模擬串口的程序,也看了STC的數(shù)據(jù)手冊(cè)里介紹的模擬串口部分,感覺模擬串口可以完成數(shù)據(jù)的收發(fā),但是不怎么好用,搞了兩天就沒有弄模擬串口了,一想自己還有兩個(gè)兩個(gè)以前在漢口解放公園那里買的兩個(gè)STC12LE5A60S2的最小系統(tǒng)板,就用它了。這個(gè)不用焊接電路,只需要用杜邦線連接就可以了,串口的程序自己以前也寫得有,nRF24L01+的收發(fā)的程序也早就弄好了。感覺只需要把兩個(gè)有機(jī)的結(jié)合在一起就可以了。但是,不是這樣的,主要是串口。以前的串口程序可以發(fā)送字符串到串口調(diào)試助手上去,但是接收我需要把接收的字符串存入一個(gè)數(shù)組里去,而且數(shù)組的長(zhǎng)度有限制(我只會(huì)讓nRF24L01+一次發(fā)送32字節(jié)的數(shù)據(jù),它一次最多也只可以發(fā)送32字節(jié)的數(shù)據(jù),超過32字節(jié)的就不會(huì)操作了,主要是不知道怎么樣將從串口接收到的超過32字節(jié)的數(shù)據(jù)存入多個(gè)數(shù)組里面再發(fā)送出去的數(shù)據(jù)的長(zhǎng)度就是接收到的長(zhǎng)度),再將從串口接收到了的字符串存入數(shù)組里面花了一點(diǎn)時(shí)間,但是還是發(fā)現(xiàn)有問題。一是:當(dāng)數(shù)組長(zhǎng)度小于等于32時(shí),很好操作,但是超過32時(shí)再發(fā)送出去的就是超過的部分的數(shù)據(jù),前32個(gè)我把它清零了,后面的沒有清零。二是:當(dāng)我人為的規(guī)定了一次發(fā)送的數(shù)據(jù)的長(zhǎng)度,但是當(dāng)一次的數(shù)據(jù)長(zhǎng)度小于我人為規(guī)定的長(zhǎng)度再怎么發(fā)送出去呢?還好我想到了定時(shí)器,思路:當(dāng)數(shù)據(jù)大于32時(shí),發(fā)送這個(gè)數(shù)據(jù)的前32個(gè);當(dāng)數(shù)據(jù)小于32時(shí),我們打開定時(shí)器,定時(shí)時(shí)間大于接收一串字符串的時(shí)間,再在定時(shí)時(shí)間到了后把數(shù)據(jù)發(fā)送出去。定時(shí)器中斷的操作也是在做老師的項(xiàng)目時(shí)經(jīng)常用到了,我就這么的寫了代碼,發(fā)現(xiàn)奇跡出來了:達(dá)到了想象的效果。但是還有一個(gè)一直成在的問題就是當(dāng)數(shù)組長(zhǎng)度大于32時(shí),它怎么就會(huì)把超出的部分發(fā)送出去?后來就做了一個(gè)使用說明的東西,按照說明來操作就OK了,自己做的東西,說明規(guī)定當(dāng)然由我定了,呵呵……就這么的串口算是弄到了理想效果。但是問題又來了。我的PL2302的驅(qū)動(dòng)裝不好,以前我的電腦就是用的這個(gè)驅(qū)動(dòng),這就導(dǎo)致我只能做一個(gè)的了,不能兩個(gè)同時(shí)操作。沒辦法,只好想辦法解決驅(qū)動(dòng)的問題,搞了一天沒有搞好,驅(qū)動(dòng)有問題我也無解了,再就是來焊接MAX3232串口電路了,焊接了兩次沒有焊接好,沒辦法,在寢室弄實(shí)驗(yàn)條價(jià)差沒有工具檢測(cè),第二次是昨天晚上上完了選修課回來焊接的,于放棄了。前幾天找彭博華借了一個(gè)CP2102的下載器,我的電腦裝CP2102的驅(qū)動(dòng)裝不好,昨天晚上又找呂靜借來了電腦,她的電腦我上次使用時(shí)裝好了CP2102的驅(qū)動(dòng)。昨天晚上焊接電路前在她的電腦上試了一下CP2102下載器,好使。今天上午的1、2節(jié)課去上劉輝的工業(yè)計(jì)算機(jī)去了,回來就來把串口部分和nRF24L01+的收發(fā)結(jié)合起來。好在在我借到彭博華的CP2102下載器之前我的大腦里就有一個(gè)思路怎么結(jié)合兩個(gè)部分了。下課回了沒有花多少時(shí)間就把它們給弄好了,11點(diǎn)鐘吃中飯之前就好了,效果出來了,可以和別人的視頻里演示的一樣了。就這么樣困擾快一個(gè)星期的問題解決了。找黃品章借來了小米拍視屏,請(qǐng)了小強(qiáng)做攝影師。在此一并感謝提到的各位,謝謝你們!但是不管怎么拍,我的地理方位不怎么好,有點(diǎn)反光,一個(gè)人操作兩臺(tái)電腦也不好操作,視頻拍的比較亂,就截圖吧。就這么樣,我的無線通信也做完了,也達(dá)到了別人視頻里的效果。傳輸距離在空曠條件下60米沒有問題。自己不會(huì)用VB,看見那語言就不自在,所用用的還是STC官網(wǎng)提供的串口工具。
評(píng)論