• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM和WinCE6.0下nRF24L01的驅(qū)動設(shè)計(jì)

    ARM和WinCE6.0下nRF24L01的驅(qū)動設(shè)計(jì)

    作者: 時(shí)間:2012-05-23 來源:網(wǎng)絡(luò) 收藏

    d.JPG

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

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

    (2)NRF_Open()函數(shù)

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

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

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

    SPI_RW_Reg(WRITE_REG+EN_AA,0x01);

    SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);

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

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

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

    (3)NRF_Read()函數(shù)

    NRE_Read()函數(shù)實(shí)現(xiàn)了對接收緩沖區(qū)的讀取并傳送至應(yīng)用程序。由于一次最多能接收32個(gè)字節(jié)的信息,所以該函數(shù)一次最多能傳送32字節(jié)的信息。主要核心代碼如下:

    f.JPG

    (4)NRF_Write()函數(shù)

    NRE_Write()函數(shù)主要實(shí)現(xiàn)發(fā)送數(shù)據(jù)寫入發(fā)送緩沖區(qū)并發(fā)送的功能。主要核心代碼如下:

    g.JPG

    g1.jpg



    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 辉南县| 枣强县| 清水河县| 沅江市| 沾化县| 秭归县| 临汾市| 黑水县| 客服| 太仆寺旗| 永康市| 于都县| 南昌市| 永安市| 同仁县| 平利县| 西充县| 柳林县| 驻马店市| 临朐县| 克拉玛依市| 拉萨市| 会同县| 沂源县| 黎川县| 龙里县| 安义县| 大港区| 启东市| 呼伦贝尔市| 宁武县| 宣威市| 尚志市| 阿坝县| 桃园县| 固阳县| 长沙县| 西安市| 杭州市| 通州市| 呼和浩特市|