基于nRF24L01的無線溫度采集系統(tǒng)設(shè)計(jì)
4 系統(tǒng)軟件設(shè)計(jì)
4.1 nRF24L01的軟件設(shè)置
由于STC12LE5408無標(biāo)準(zhǔn)的SPI總線接口,需采用軟件模擬實(shí)現(xiàn)SPI總線。因此應(yīng)嚴(yán)格按照SPI的時(shí)序要求編寫,否則導(dǎo)致對(duì)nRF24L01的操作失敗。nRF24L01的各種命令字都只有一個(gè)字節(jié),分為讀寄存器、寫寄存器、讀數(shù)據(jù)接收緩沖區(qū)、寫發(fā)送數(shù)據(jù)緩沖區(qū)等。在輸入任意命令字的同時(shí),MISO輸出STATUS寄存器的內(nèi)容。對(duì)RF24L01的讀寫程序代碼如下:
nRF24L01的ShockBurst和Enhanced ShockBurst兩種數(shù)據(jù)模式的區(qū)別是:后者比前者多一個(gè)確認(rèn)數(shù)據(jù)傳輸?shù)男盘?hào),保證數(shù)據(jù)傳輸?shù)目煽啃?。按Enhanced ShockBurst模式初始化,重新發(fā)送等待時(shí)間為250μs,重新發(fā)送次數(shù)為10次,地址是RX_ADR_WIDTH,輸出功率為0 dBm,速度為1 Mb/s。nRF24L01處于POWER_UP狀態(tài)。函數(shù)中WRITE_REG為寫命令基地址0x20。其相關(guān)程序如下:
評(píng)論