|

超再生無線模塊就是上圖的產(chǎn)品,在淘寶上很便宜,1塊多就可以買一對。我買了2對,本以為很容易就可以搞定,
編程序?qū)ξ襾碚f并不是難事,誰知道搞了好幾天都沒搞定。
1.首先我是用面包板測試,在發(fā)送模塊的數(shù)據(jù)輸入端和vcc之間接一個按鍵模擬輸入,接收模塊的數(shù)據(jù)輸出端接萬用表正極,
每次按下按鍵,按鍵接通,萬用表會跳動一下不超過2V,接著斷開按鍵,萬用表會跳到3.5V左右的位置,再慢慢回到零。
這說明發(fā)送模塊和接收模塊是能夠通訊的。
2.接下來我換上單片機,接收模塊和單片機相連,接收模塊的VCC和GND都直接連到單片機開發(fā)板上的VCC和GND接口,萬用表的正極還是接發(fā)送模塊的數(shù)據(jù)輸出口,負(fù)極接開發(fā)板的GND,發(fā)送模塊還是用面包板,結(jié)果無論怎么按鍵,萬用表指針總是在2V左右擺動。我以為是單片機開發(fā)板的電源問題,
把接收模塊的VCC和GND和一個單獨的5V電源連接,5V電源的GND和單片機的GND相連(是不是要這樣共地?),發(fā)送模塊按鍵后,可以測得萬用表指針會跳到3.5V左右再回零。接下來我把接收模塊的數(shù)據(jù)輸出端連接到單片機的一個輸入端口,寫了一段代碼測試端口電平是否變化,結(jié)果不管發(fā)送模塊怎么發(fā)送,單片機輸入端口都無法測得有電平變化(除剛開始復(fù)位后運行代碼輸入端口會有變化)。
因為本人以前是做軟件的,剛學(xué)習(xí)單片機幾個月,對模電數(shù)電知識懂得不多,不知道上面的接線法是否正確,正確的方法應(yīng)該怎樣做才能接收到信號?請各位不吝指教,多謝了!
代碼是用ATMEGA128匯編寫的,很簡單:
.EQU SRG_R_DDR=DDRE
.EQU SRG_R_DDR_DA=DDE2
.EQU SRG_R_PORT = PORTE
.EQU SRG_R_PORT_DA = PORTE2
.EQU SRG_R_PIN = PINE
.EQU SRG_R_PIN_DA = PINE2
.CSEG
.ORG $0000
JMP __RESET__
__RESET__:
;設(shè)置堆棧
LDI R16, LOW(RAMEND)
OUT SPL, R16
LDI R16, HIGH(RAMEND)
OUT SPH, R16
;初始化數(shù)據(jù)輸入端口
CALL SRG_INIT
__RESET__01:
;測試數(shù)據(jù)輸入端口電平變化
CALL SRG_TESTLEVEL
JMP __RESET__01
SRG_INIT:
;設(shè)置接收端口為輸入 缺省高阻
CBI SRG_R_DDR, SRG_R_DDR_DA
CBI SRG_R_PORT, SRG_R_PORT_DA;高阻
;SBI SRG_R_PORT, SRG_R_PORT_DA;上拉高電平
RET
;測試數(shù)據(jù)輸入口電平變化
SRG_TESTLEVEL:
SBIS SRG_R_PIN, SRG_R_PIN_DA;如果高電平跳出循環(huán)
RJMP SRG_SRG_TESTLEVEL
RET
|
|