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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1028|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

nrf905頭文件

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:431226 發(fā)表于 2019-4-18 22:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#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 有效數(shù)據(jù)1-32 字節(jié)寫操作全部從字節(jié)0 開始
#define RTP                0x21        // Read  TX Payload  command
                                                // 讀TX 有效數(shù)據(jù)1-32 字節(jié)讀操作全部從字節(jié)0 開始
#define WTA                0x22        // Write TX Address  command
                                                // 寫TX地址命令
#define RTA                0x23        // Read  TX Address  command
                                                // 讀TX 地址1-4 字節(jié)讀操作全部從字節(jié)0 開始
#define RRP                0x24        // Read  RX Payload  command
                        // 讀RX 有效數(shù)據(jù)1-32 字節(jié)讀操作全部從字節(jié)0 開始
/*******************************************************************************************/
typedef struct RFConfig1
{
        uchar n;
        uchar buf[10];
}RFConfig;

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

//內(nèi)容的struct是nRF905的初始化數(shù)據(jù)。初始化數(shù)據(jù)
// ch沒有= 1;433 mhz;正常施工,沒有Retrans;RX,TX地址是4個字節(jié)
// RX TX負載寬度是32字節(jié);禁用走讀生時鐘;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發(fā)送數(shù)據(jù)
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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 羞羞视频在线观看免费观看 | 亚洲成人免费av | 成人在线欧美 | 中文字幕免费在线 | 91免费在线 | 久久美女视频 | 欧美日韩亚洲国产综合 | 国产精品不卡 | 成人免费视频网址 | 午夜成人免费视频 | 成人在线不卡 | 97人人干 | 视频一二三区 | 久久天堂 | 91网站在线观看视频 | 精品一区二区在线观看 | 99精品视频一区二区三区 | 午夜视频一区二区三区 | 精品一区在线看 | 欧美一区二区激情三区 | 免费成人毛片 | 韩日精品在线观看 | 天堂成人国产精品一区 | 久久精品国产一区二区电影 | 精品国产欧美一区二区三区成人 | 国产精品激情 | 91精品国产综合久久久亚洲 | 欧美国产日韩一区二区三区 | 特黄毛片视频 | 成人h动漫亚洲一区二区 | 国产美女自拍视频 | 国外激情av| 国产欧美日韩二区 | 99国产精品99久久久久久 | av福利网 | 亚洲天堂一区二区 | 91亚洲欧美 | 久久天堂 | 99精品欧美一区二区蜜桃免费 | 福利片在线观看 | 亚洲中国字幕 |