




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#define uchar unsigned charuchar dataH,dataL;/定義全局變量用來保存數(shù)據(jù)/*腳位定義*/sbit SPI_CLK = P14;sbit SPI_MISO = P15; sbit SPI_MOSI = P22;sbit SPI_SS = P23;/片選sbit LT_RESET_N = P24;sbit LT_PKT_FLAG = P25;/LT8900 pkt腳uchar RX_data8;/定義數(shù)據(jù)緩沖區(qū),保存LT8900收到的數(shù)據(jù)/*從8900讀一個(gè)字節(jié)*/uchar SPI_read8bit()uchar i,data;for(i=0;i<
2、;8;i+)data=data<<1;SPI_CLK=1;_NOP(); /空指令,稍微延時(shí)一下_NOP();_NOP();SPI_CLK=0;if(SPI_MISO=1)data=data|0x01;if(SPI_MISO=0)data=data|0x00;return data;/*往8900寫一個(gè)字節(jié)*/void SPI_write8bit(uchar data)uchar i;for(i=0;i<8;i+)data=data<<1;SPI_CLK=1;_NOP();_NOP();_NOP();SPI_MOSI=C;SPI_CLK=0;/*從地址addr讀數(shù)
3、據(jù),LT8900寄存器是16位的,*hdata用來保存高8位,ldata用來保存低8位*/void LT8900_writeReg(uchar add,uchar hdata,uchar ldata)SPI_SS=0;/拉低LT8900使能腳,使能LT8900_NOP();SPI_write8bit(add&0X7F);/地址最高位0表示寫_NOP();_NOP();SPI_write8bit(hdata);SPI_write8bit(ldata);_NOP();SPI_SS=1;/完畢重新拉高LT8900使能腳void LT8900_readReg(uchar add)SPI_SS=
4、0; /拉低LT8900使能腳,使能LT8900_NOP();SPI_write8bit(add|0x80);/地址最高位1表示讀_NOP();_NOP();dataH=SPI_read8bit();/data high bytedataL=SPI_read8bit();/data low byte_NOP();SPI_SS=1; /完畢重新拉高LT8900使能腳/*以上4個(gè)函數(shù)就是LT8900最底層的4個(gè)函數(shù),應(yīng)用程序可以直接調(diào)用。*/void delayms(uchar ms)uchar i,j;for(i=0;i<ms;i+)for(j=0;j<100;j+);/*以下是LT
5、8900接收的初始化代碼*/void LT8900_RX_INIT(void)LT_RESET_N=0;/關(guān)閉芯片delayms(10);LT_RESET_N=1;/開啟芯片,寄存器復(fù)位delayms(50);LT8900_writeReg(0, 0x6f, 0xe0);LT8900_writeReg(1, 0x56, 0x81);LT8900_writeReg(2, 0x66, 0x17);LT8900_writeReg(4, 0x9c, 0xc9);LT8900_writeReg(5, 0x66, 0x37);LT8900_writeReg(7, 0x00, 0x4c);LT8900_wr
6、iteReg(8, 0x6C, 0x90);LT8900_writeReg(9, 0x18, 0x40);LT8900_writeReg(10, 0x7F, 0xFD);LT8900_writeReg(11, 0x00, 0x08);LT8900_writeReg(12, 0x00, 0x00);LT8900_writeReg(13, 0x48, 0xBD);LT8900_writeReg(22, 0x00, 0xff);LT8900_writeReg(23, 0x80, 0x05);LT8900_writeReg(24, 0x00, 0x67);LT8900_writeReg(25, 0x1
7、6, 0x59);LT8900_writeReg(26, 0x19, 0xE0);LT8900_writeReg(27, 0x13, 0x00);LT8900_writeReg(28, 0x18, 0x00);LT8900_writeReg(32, 0x48, 0x00);LT8900_writeReg(33, 0x3f, 0xC7);LT8900_writeReg(34, 0x20, 0x00);LT8900_writeReg(35, 0x03, 0x00);LT8900_writeReg(36, 0x05, 0x0A);LT8900_writeReg(39, 0x55, 0xAA);LT8
8、900_writeReg(40, 0x44, 0x01);LT8900_writeReg(41, 0xB0, 0x00);LT8900_writeReg(42, 0xFD, 0xB0);LT8900_writeReg(43, 0x00, 0x0F);LT8900_writeReg(50, 0x00, 0x00);LT8900_writeReg(52, 0x80, 0x80);LT8900_writeReg(7, 0x00, 0X84);delayms(50);/delay 50ms to let LT8900 for operation接收的應(yīng)用程序可以這樣寫:Void main(void)i
9、nt i;LT8900_RX_INIT();While(1)if(LT_PKT_FLAG=1) /如果LT8900的PKT腳被拉高,說明收到了數(shù)據(jù)/* Register 52 的bit813將指示收到多少字節(jié)數(shù)據(jù),一般來說發(fā)端發(fā)送多少個(gè)字節(jié)的數(shù)據(jù)是確定的,讀這個(gè)字節(jié)用來校驗(yàn)收到的數(shù)據(jù)包數(shù)據(jù)長度是否正確*/LT8900_readReg(52);if(dataH&0x3f) = 8)/這里假定發(fā)端發(fā)的是8個(gè)字節(jié)的數(shù)據(jù)包SPI_SS=0;/使能8900/*向LT8900的Register50發(fā)送讀命令*/SPI_write8bit(50|0x80);_NOP();_NOP();_NOP();
10、_NOP();for(i=0;i<8;i+)RX_datai=SPI_read8bit(); /將8字節(jié)數(shù)據(jù)全部讀出_NOP();_NOP();SPI_SS=1;/*以下兩步是必須的,1.清空FIFO,2.重新設(shè)置頻道,LT8900再次進(jìn)入接收狀態(tài)*/LT8900_writeReg(52, 0x80, 0x80);LT8900_writeReg(7, 0x00, 0X84);/*接下來就可以根據(jù)收到的數(shù)據(jù)(在數(shù)組RX_data中),去干你想干的事情了*/*以下是LT8900發(fā)送的初始化代碼*/void LT8900_TX_INIT(void)LT_RESET_N=0;/關(guān)閉芯片delay
11、ms(10);LT_RESET_N=1;/開啟芯片,寄存器復(fù)位delayms(50);LT8900_writeReg(0, 0x6f, 0xe0);LT8900_writeReg(1, 0x56, 0x81);LT8900_writeReg(2, 0x66, 0x17);LT8900_writeReg(4, 0x9c, 0xc9);LT8900_writeReg(5, 0x66, 0x37);LT8900_writeReg(7, 0x00, 0x4c);LT8900_writeReg(8, 0x6C, 0x90);LT8900_writeReg(9, 0x18, 0x40);LT8900_wr
12、iteReg(10, 0x7F, 0xFD);LT8900_writeReg(11, 0x00, 0x08);LT8900_writeReg(12, 0x00, 0x00);LT8900_writeReg(13, 0x48, 0xBD);LT8900_writeReg(22, 0x00, 0xff);LT8900_writeReg(23, 0x80, 0x05);LT8900_writeReg(24, 0x00, 0x67);LT8900_writeReg(25, 0x16, 0x59);LT8900_writeReg(26, 0x19, 0xE0);LT8900_writeReg(27, 0
13、x13, 0x00);LT8900_writeReg(28, 0x18, 0x00);LT8900_writeReg(32, 0x48, 0x00);LT8900_writeReg(33, 0x3f, 0xC7);LT8900_writeReg(34, 0x20, 0x00);LT8900_writeReg(35, 0x03, 0x00);LT8900_writeReg(36, 0x05, 0x0A);LT8900_writeReg(39, 0x55, 0xAA);LT8900_writeReg(40, 0x44, 0x01);LT8900_writeReg(41, 0xB0, 0x00);L
14、T8900_writeReg(42, 0xFD, 0xB0);LT8900_writeReg(43, 0x00, 0x0F);LT8900_writeReg(50, 0x00, 0x00);LT8900_writeReg(52, 0x80, 0x80);LT8900_writeReg(7, 0x01, 0x04);delayms(50);/delay 50ms to let LT8900 for operation/*LT8900發(fā)送的一個(gè)應(yīng)用程序*/uchar TX_data8;void main(void)int i;LT8900_TX_INIT();While(1)if(/*這里是你要發(fā)送的條件,條件成立就進(jìn)去發(fā)送*/)/首先把你要發(fā)送的數(shù)據(jù)填充到數(shù)組TX_data,如TX_data0 = 0x07,TX_data1=0x5a,.LT8900_writeReg(7, 0x00, 0X00); /stop tx,停止發(fā)送LT8900_writeReg(52,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/T 1038-2017生態(tài)公益林主要造林樹種苗木質(zhì)量分級
- DB31/T 1016-2016郵政普遍服務(wù)規(guī)范
- DB31/ 765.1-2013重點(diǎn)行業(yè)反恐怖防范系統(tǒng)管理規(guī)范第1部分:公共供水
- 影視設(shè)備行業(yè)公共關(guān)系服務(wù)批發(fā)考核試卷
- 校長在全校教師高考工作會(huì)議上的講話
- JAVA設(shè)計(jì)模式的考試試題及答案
- 環(huán)保產(chǎn)業(yè)投資與市場拓展合作協(xié)議
- 藝術(shù)展覽館空間租賃與運(yùn)營維護(hù)合同
- 綠色建筑節(jié)能改造與碳排放交易服務(wù)合同
- 2025年中國苯酚二酚行業(yè)市場前景預(yù)測及投資價(jià)值評估分析報(bào)告
- 太湖蘇州轄區(qū)生態(tài)清淤一期工程環(huán)境影響報(bào)告書
- 精神分裂癥患者個(gè)案護(hù)理查房
- 2025屆江蘇省蘇州市高考沖刺押題(最后一卷)英語試卷含解析
- 中國共產(chǎn)主義青年團(tuán)紀(jì)律處分條例試行解讀學(xué)習(xí)
- 三方水泥合同協(xié)議
- 2025至2030年抗應(yīng)激添加劑項(xiàng)目投資價(jià)值分析報(bào)告
- 23《“蛟龍”探?!饭_課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 研學(xué)部管理制度
- 帶電粒子在復(fù)合場中的運(yùn)動(dòng)教學(xué)設(shè)計(jì)
- 通信光纜線路工程安全技術(shù)交底
- 貴州省婦幼健康服務(wù)體系與能力提升實(shí)施方案
評論
0/150
提交評論