新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM和WinCE6.0下nRF24L01的驅動設計

        ARM和WinCE6.0下nRF24L01的驅動設計

        作者: 時間:2012-05-23 來源:網絡 收藏

        d.JPG

        本文引用地址:http://www.104case.com/article/171420.htm

        為了方便映射虛擬地址,在本中將所用到的特殊功能寄存器的虛擬地址由自定義類CS3c2440SFR來進行組織。其中“sfr”是類CS3c2440SFR的實例,D()是一個自定義宏,其源碼為“#define D(v_add)(*(volatile unsigned long*)v_add)”。

        (2)NRF_Open()函數

        NRF Open()函數主要實現了對初始化是否成功的判斷及對進行初始配制。核心代碼如下:

        SPI_Write_Bur(WRITE REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH); //寫本地默認地址

        SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH); //寫接收端默認地址

        SPI_RW_Reg(WRITE_REG+EN_AA,0x01);

        SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);

        SPI_RW_Reg(WRITE_REG+RF_CH,0);//設置信道工作為2.4 GHz,收發必須一致

        SPI_RW_Reg(WRITE_REG+RX_PW_P0,RX_PLOADWIDTH); //設置接收數據長度

        SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07);//設置發射速率為1 MHz,發射功率為最大值0 dB

        (3)NRF_Read()函數

        NRE_Read()函數實現了對接收緩沖區的讀取并傳送至應用程序。由于一次最多能接收32個字節的信息,所以該函數一次最多能傳送32字節的信息。主要核心代碼如下:

        f.JPG

        (4)NRF_Write()函數

        NRE_Write()函數主要實現發送數據寫入發送緩沖區并發送的功能。主要核心代碼如下:

        g.JPG

        g1.jpg



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武强县| 香格里拉县| 健康| 慈溪市| 宁波市| 昭通市| 嘉善县| 文昌市| 军事| 四平市| 滁州市| 浏阳市| 自贡市| 昂仁县| 金塔县| 离岛区| 湘西| 白银市| 吉木萨尔县| 遂平县| 唐河县| 常熟市| 井陉县| 中西区| 金沙县| 昂仁县| 莱阳市| 正定县| 望谟县| 义乌市| 卢龙县| 高青县| 边坝县| 获嘉县| 陇西县| 平乡县| 穆棱市| 清新县| 江安县| 三江| 迁西县|