久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: nrf905頭文件 [打印本頁]

作者: mkdf    時間: 2019-4-18 22:01
標題: nrf905頭文件
#ifndef _NRF905_H_
#define _NRF905_H_

#define WC                0x00        // Write configuration register command
                                                // 編寫配置寄存器命令
#define RC                0x10         // Read  configuration register command
                                                // 讀取配置寄存器命令
#define WTP                0x20         // Write TX Payload  command
                                                // 寫TX 有效數據1-32 字節寫操作全部從字節0 開始
#define RTP                0x21        // Read  TX Payload  command
                                                // 讀TX 有效數據1-32 字節讀操作全部從字節0 開始
#define WTA                0x22        // Write TX Address  command
                                                // 寫TX地址命令
#define RTA                0x23        // Read  TX Address  command
                                                // 讀TX 地址1-4 字節讀操作全部從字節0 開始
#define RRP                0x24        // Read  RX Payload  command
                        // 讀RX 有效數據1-32 字節讀操作全部從字節0 開始
/*******************************************************************************************/
typedef struct RFConfig1
{
        uchar n;
        uchar buf[10];
}RFConfig;

code RFConfig RxTxConf =   //參看
{
        10,
        0x01, 0x0c, 0x44, 0x20, 0x20, 0xcc, 0xcc, 0xcc,0xc0, 0x58       
};

//內容的struct是nRF905的初始化數據。初始化數據
// ch沒有= 1;433 mhz;正常施工,沒有Retrans;RX,TX地址是4個字節
// RX TX負載寬度是32字節;禁用走讀生時鐘;Fosc = 16 mhz
// 8位CRC和啟用
/*******************************************************************************************/
uchar data TxBuf[32];
uchar data RxBuf[32];
uchar key,rsbrf,delayf,tf;
/*******************************************************************************************/
uchar bdata DATA_BUF;
sbit        flag        = DATA_BUF^7;
sbit        flag1        = DATA_BUF^0;
/*******************************************************************************************/
sbit        SCK                = P2^0;
sbit        MISO        = P2^1;
sbit        AM                = P2^2;
sbit        TRX_CE        = P2^3;
sbit        TX_EN        = P2^4;
sbit        PWR_UP        = P2^5;
sbit        DR                = P1^7;
sbit        MOSI        = P1^6;
sbit        CSN                = P1^5;

/*******************************************************************************************/
void Config905(void);                        // Config nRF905 module配置NRF905模式
void SetTxMode(void);                        // Set nRF905 in Tx mode
void SetRxMode(void);                        // Set nRF905 in Rx mode
void TxPacket(void);                        // Send data by nRF905        由nRF905發送數據
void RxPacket(void);                        // Recive data by nRF905
void SpiWrite(uchar);                        // Write data to nRF905
uchar SpiRead(void);                        // Read data to nRF905
void Delay(uchar n);                        // Delay 100us
/*******************************************************************************************/
void Delay(uchar n)
{
        uint i;
        while(n--)
        for(i=0;i<80;i++);       
}


/*******************************************************************************************/
/*******************************************************************************************/
//function Config905();         配置
/*******************************************************************************************/
void Config905(void)
{
        uchar i;                                       
        CSN=0;                                                // Spi enable for write a spi command
        SpiWrite(WC);                                // Write config command寫放配置命令
        for (i=0;i<RxTxConf.n;i++)        // Write configration words  寫放配置字
        {
                SpiWrite(RxTxConf.buf[i]);
        }
        CSN=1;                                                // Disable Spi
}
/*******************************************************************************************/
//function SpiWrite();
/*******************************************************************************************/
void SpiWrite(uchar  byte)
{
        uchar i;       
        DATA_BUF=byte;                                // Put function's parameter into a bdata variable               
        for (i=0;i<8;i++)                        // Setup byte circulation bits
        {                       
                if (flag)                                // Put DATA_BUF.7 on data line
                        MOSI=1;
                else
                        MOSI=0;
                SCK=1;                                        // Set clock line high
                DATA_BUF=DATA_BUF<<1;        // Shift DATA_BUF
                SCK=0;                                        // Set clock line low
        }       
}

/*******************************************************************************************/
//function TxPacket();
/*******************************************************************************************/
void TxPacket(void)
{
        uchar i;
        //Config905();                               
        CSN=0;                                                // Spi enable for write a spi command       
        SpiWrite(WTP);                                // Write payload command
        for (i=0;i<32;i++)
        {
                SpiWrite(TxBuf[i]);                // Write 32 bytes Tx data
        }
        CSN=1;                                                // Spi disable                                               
        Delay(1);
        CSN=0;                                                // Spi enable for write a spi command       
        SpiWrite(WTA);                                // Write address command
        for (i=0;i<4;i++)                        // Write 4 bytes address
        {
                SpiWrite(RxTxConf.buf[i+5]);
        }       
        CSN=1;                                                // Spi disable
        TRX_CE=1;                                        // Set TRX_CE high,start Tx data transmission
        Delay(1);                                        // while (DR!=1);
        TRX_CE=0;                                        // Set TRX_CE low
}

/*******************************************************************************************/
//function SetTxMode();
/*******************************************************************************************/
void SetTxMode(void)                               
{       
        TX_EN=1;
        TRX_CE=0;
        Delay(1);                                         // delay for mode change(>=650us)
}                               
/*******************************************************************************************/
//function SetRxMode();
/*******************************************************************************************/
void SetRxMode(void)
{
        TX_EN=0;
        TRX_CE=1;
        Delay(1);                                         // delay for mode change(>=650us)                               
}

void init_nrf905()
{
        //    //================NRF905初始化
        CSN=1;                                                // Spi         disable        Spi禁用                                       
        DR=1;                                                // Init DR for input
        AM=1;                                                // Init AM for input
        PWR_UP=1;                                        // nRF905 power on
        //================
        Config905();                                // Config nRF905 module 配置模塊nRF905                                        // led close
        SetRxMode();                                // Set nRF905 in Rx mode
               
}


#endif






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久一区精品 | 亚洲欧美一区二区三区情侣bbw | 99在线资源 | 日韩精品成人免费观看视频 | 午夜影院污 | 欧美日韩一区二区电影 | 日韩久久久久久 | 成人午夜av| 午夜电影网站 | 亚洲午夜小视频 | 欧美日韩在线观看一区 | 天天久久 | 午夜免费影视 | 亚洲一区二区三区免费观看 | www.久久久久久久久久久 | 日韩成人精品在线观看 | 久久精品一区二 | 在线免费看毛片 | 日本成人中文字幕 | 91资源在线 | 亚洲色综合 | 毛片网站在线观看 | 午夜不卡福利视频 | 久久国产福利 | 亚洲国产高清免费 | 国产色婷婷精品综合在线播放 | 五月婷婷丁香婷婷 | 日韩喷潮| 欧美一级视频 | 欧美日韩一区二区三区四区五区 | 欧美中文字幕一区二区 | 欧美日韩国产精品 | 水蜜桃亚洲一二三四在线 | www97影院 | 九九九久久国产免费 | 农夫在线精品视频免费观看 | 亚洲区一区二区 | 免费av直接看 | 精国产品一区二区三区四季综 | 亚洲精品视频在线播放 | 久久国产精品免费一区二区三区 |