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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1015|回復: 0
打印 上一主題 下一主題
收起左側

nrf905頭文件

[復制鏈接]
跳轉到指定樓層
樓主
ID:431226 發表于 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 有效數據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

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区久久久 | 影音先锋欧美资源 | 国产精品久久久久国产a级 欧美日韩国产免费 | 一区二区三区四区av | 久久国产精品一区二区三区 | 91久久国产综合久久 | 欧美一级二级视频 | 亚洲成网 | 欧美一区二区三区在线观看 | 天天草天天| 国产男女视频 | 欧洲精品视频一区 | 精品三区| 欧美a级成人淫片免费看 | 日韩精品激情 | 精品国产欧美一区二区三区不卡 | 久久免费高清 | 成人国产精品久久 | 欧美一区二区三区在线播放 | 国产精品久久国产精品 | 久久久精彩视频 | 精品一区二区三区在线观看 | www亚洲免费国内精品 | 荷兰欧美一级毛片 | 狠狠躁夜夜躁人人爽天天高潮 | 请别相信他免费喜剧电影在线观看 | 超黄毛片| 国产精品久久久久久久久久免费看 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 丁香久久 | 亚洲网站在线观看 | 国产精品久久久久久久久久了 | 久久综合一区 | 国产精品久久免费观看 | 成人av播放 | 黄色免费三级 | 91中文视频| 在线视频91 | 黄色一级大片在线免费看产 | 中文字幕视频网 | 一区二区三区中文字幕 |