亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? nrf905.c

?? 無線nrf905(PTR8000模塊)源程序環(huán)境:ICCAVR MEGA16L+11.0592M 訊通的PTR8000和PTR8000+模塊
?? C
字號:
#include "config.h"

extern void DelayMs(uchar ms);
extern void DelayUs(uint us);

#define SIZE 32

uchar TxBuf[SIZE],RxBuf[SIZE];

/*-------------------------------------------------------------------------------------------
nrf905配置寄存器宏定義 author:HotPower
        nrf905配置寄存器(10Byte)
工作頻率f=(422.4+CH_NO/10)*(1+HFREQ_PLL)MHz
-------------------------------------------------------------------------------------------*/
#define RX_ADDRESS           0x12345678               //接收有效地址(本方)
#define TX_ADDRESS           0x12345678               //發(fā)送有效地址(對方)

#define CH_NO_FREQ_422_4MHz  0x000                     //工作頻率422.4MHz(433MHz頻段最低頻率)
#define CH_NO_FREQ_422_5MHz  0x001                     //工作頻率422.5MHz
#define CH_NO_FREQ_425_0MHz  0x01a                     //工作頻率425.0MHz
#define CH_NO_FREQ_427_5MHz  0x033                     //工作頻率427.5MHz

#define CH_NO_FREQ_430_0MHz  0x04c                     //工作頻率430.0MHz
#define CH_NO_FREQ_433_0MHz  0x06a                     //工作頻率433.0MHz(433MHz頻段基準頻率)
#define CH_NO_FREQ_433_1MHz  0x06b                     //工作頻率433.1MHz
#define CH_NO_FREQ_433_2MHz  0x06c                     //工作頻率433.2MHz
#define CH_NO_FREQ_434_7MHz  0x07b                     //工作頻率434.7MHz
#define CH_NO_FREQ_473_5MHz  0x1ff                     //工作頻率473.5MHz(433MHz頻段最高頻率)

#define CH_NO_FREQ_844_8MHz  0x000                     //工作頻率844.8MHz(868MHz頻段最低頻率)

#define CH_NO_FREQ_862_0MHz  0x056                     //工作頻率862.0MHz
#define CH_NO_FREQ_868_0MHz  0x074                     //工作頻率868.0MHz(868MHz頻段基準頻率)
#define CH_NO_FREQ_868_2MHz  0x075                     //工作頻率868.2MHz
#define CH_NO_FREQ_868_4MHz  0x076                     //工作頻率868.4MHz
#define CH_NO_FREQ_869_8MHz  0x07d                     //工作頻率869.8MHz
#define CH_NO_FREQ_895_8MHz  0x0ff                     //工作頻率895.8MHz
#define CH_NO_FREQ_896_0MHz  0x100                     //工作頻率896.0MHz
#define CH_NO_FREQ_900_0MHz  0x114                     //工作頻率900.0MHz
#define CH_NO_FREQ_902_2MHz  0x11f                     //工作頻率902.2MHz
#define CH_NO_FREQ_902_4MHz  0x120                     //工作頻率902.4MHz
#define CH_NO_FREQ_915_0MHz  0x15f                     //工作頻率915.0MHz(915MHz頻段基準頻率)
#define CH_NO_FREQ_927_8MHz  0x19f                     //工作頻率927.8MHz

#define CH_NO_FREQ_947_0MHz  0x1ff                     //工作頻率947.0MHz(915MHz頻段最高頻率)

#define CH_NO_FREQ           CH_NO_FREQ_430_0MHz       //工作頻率433.0MHz


#define CH_NO_BYTE           CH_NO_FREQ & 0xff         //工作頻率低8位       Byte0       01101100

#define AUTO_RETRAN          0x20                      //重發(fā)數(shù)據(jù)包          Byte1.5     0
#define RX_RED_PWR           0x10                      //接收低功耗模式      Byte1.4     0
#define PA_PWR__10dBm        0x00                      //輸出功率-10dBm      Byte1.3~2   00
#define PA_PWR_2dBm          0x04                      //輸出功率+2dBm       Byte1.3~2
#define PA_PWR_6dBm          0x08                      //輸出功率+6dBm       Byte1.3~2
#define PA_PWR_10dBm         0x0c                      //輸出功率+10dBm      Byte1.3~2   
#define HFREQ_PLL_433MHz     0x00                      //工作在433MHz頻段    Byte1.1     0
#define HFREQ_PLL_868MHz     0x02                      //工作在868MHz頻段    Byte1.1
#define HFREQ_PLL_915MHz     0x02                      //工作在915MHz頻段    Byte1.1
#define CH_NO_BIT8           CH_NO_FREQ >> 8           //工作頻率第9位       Byte1.0     0

#define TX_AFW_1BYTE         1 * 16                    //發(fā)送地址寬度1字節(jié)   Byte2.7~4
#define TX_AFW_2BYTE         2 * 16                    //發(fā)送地址寬度2字節(jié)   Byte2.7~4
#define TX_AFW_3BYTE         3 * 16                    //發(fā)送地址寬度3字節(jié)   Byte2.7~4
#define TX_AFW_4BYTE         4 * 16                    //發(fā)送地址寬度4字節(jié)   Byte2.7~4   100
#define RX_AFW_1BYTE         1                         //接收地址寬度1字節(jié)   Byte2.3~0
#define RX_AFW_2BYTE         2                         //接收地址寬度2字節(jié)   Byte2.3~0
#define RX_AFW_3BYTE         3                         //接收地址寬度3字節(jié)   Byte2.3~0
#define RX_AFW_4BYTE         4                         //接收地址寬度4字節(jié)   Byte2.3~0   100

#define RX_PW_1BYTE          1                         //接收數(shù)據(jù)寬度1字節(jié)   Byte3.5~0
#define RX_PW_32BYTE         32                        //接收數(shù)據(jù)寬度32字節(jié)  Byte3.5~0   00100000
#define TX_PW_1BYTE          1                         //發(fā)送數(shù)據(jù)寬度1字節(jié)   Byte4.5~0 
#define TX_PW_32BYTE         32                        //發(fā)送數(shù)據(jù)寬度32字節(jié)  Byte4.5~0   00100000

#define RX_ADDRESS_0         RX_ADDRESS >> 24          //接收有效地址第1字節(jié) Byte5       11100111
#define RX_ADDRESS_1         (RX_ADDRESS >> 16) & 0xff //接收有效地址第2字節(jié) Byte6       11100111 
#define RX_ADDRESS_2         (RX_ADDRESS >> 8) & 0xff  //接收有效地址第3字節(jié) Byte7       11100111
#define RX_ADDRESS_3         RX_ADDRESS & 0xff         //接收有效地址第4字節(jié) Byte8       11100111
       
#define CRC_MODE_16BIT       0x80                      //CRC16模式           Byte9.7     1
#define CRC_MODE_8BIT        0x00                      //CRC8模式            Byte9.7     
#define CRC_EN               0x40                      //CRC使能             Byte9.6     1
#define CRC16_EN             0xc0                      //CRC16模式使能       Byte9.7~6   11
#define CRC8_EN              0x40                      //CRC8模式使能        Byte9.7~6
#define XOF_20MHz            0x20                      //晶體振蕩器頻率20MHz Byte9.5~3
#define XOF_16MHz            0x18                      //晶體振蕩器頻率16MHz Byte9.5~3   100
#define XOF_12MHz            0x10                      //晶體振蕩器頻率12MHz Byte9.5~3
#define XOF_8MHz             0x08                      //晶體振蕩器頻率8MHz  Byte9.5~3
#define XOF_4MHz             0x00                      //晶體振蕩器頻率4MHz  Byte9.5~3
#define UP_CLK_EN            0x40                      //輸出時鐘使能        Byte9.2     1
#define UP_CLK_FREQ_500kHz   0x03                      //輸出時鐘頻率500kHz  Byte9.1~0   11
#define UP_CLK_FREQ_1MHz     0x02                      //輸出時鐘頻率1MHz    Byte9.1~0
#define UP_CLK_FREQ_2MHz     0x01                      //輸出時鐘頻率2MHz    Byte9.1~0
#define UP_CLK_FREQ_4MHz     0x00                      //輸出時鐘頻率4MHz    Byte9.1~0

#define UP_CLK_EN_500kHz     0x43                      //輸出時鐘頻率500kHz  Byte9.2~0   111
#define UP_CLK_EN_1MHz       0x42                      //輸出時鐘頻率1MHz    Byte9.2~0
#define UP_CLK_EN_2MHz       0x41                      //輸出時鐘頻率2MHz    Byte9.2~0
#define UP_CLK_EN_4MHz       0x40                      //輸出時鐘頻率4MHz    Byte9.2~0

#define TX_ADDRESS_0         TX_ADDRESS >> 24          //發(fā)送有效地址第1字節(jié)
#define TX_ADDRESS_1         (TX_ADDRESS >> 16) & 0xff //發(fā)送有效地址第2字節(jié)
#define TX_ADDRESS_2         (TX_ADDRESS >> 8) & 0xff  //發(fā)送有效地址第3字節(jié)
#define TX_ADDRESS_3         TX_ADDRESS & 0xff         //發(fā)送有效地址第4字節(jié)

/*-----------------------------------------------
        nrf905命令控制字 author:HotPower
------------------------------------------------*/
#define WC        0x00            // Write configuration register command
#define RC        0x10            // Read  configuration register command
#define WTP       0x20            // Write TX Payload  command
#define RTP       0x21            // Read  TX Payload  command
#define WTA       0x22            // Write TX Address  command
#define RTA       0x23            // Read  TX Address  command
#define RRP       0x24            // Read  RX Payload  command
 

//配置nRF905
void nrf905_Config(void)
{
  CLR(PORTB,CSN);                   // Spi 片選開
  nrf905_SpiRW(WC);                // Write config command
  nrf905_SpiRW(CH_NO_BYTE);                      //中心頻率低8位
  nrf905_SpiRW(PA_PWR_10dBm | HFREQ_PLL_433MHz); //發(fā)射+10dBm,發(fā)射頻率433MHz,中心頻率第9位=0
  nrf905_SpiRW(TX_AFW_4BYTE | RX_AFW_4BYTE);     //接收地址寬度4字節(jié),發(fā)送地址寬度4字節(jié)
  nrf905_SpiRW(RX_PW_32BYTE);                    //接收數(shù)據(jù)寬度32字節(jié)
  nrf905_SpiRW(TX_PW_32BYTE);                    //發(fā)送數(shù)據(jù)寬度32字節(jié)
  nrf905_SpiRW(RX_ADDRESS_0);                    //接收有效地址第1字節(jié)
  nrf905_SpiRW(RX_ADDRESS_1);                    //接收有效地址第2字節(jié)
  nrf905_SpiRW(RX_ADDRESS_2);                    //接收有效地址第3字節(jié)
  nrf905_SpiRW(RX_ADDRESS_3);                    //接收有效地址第4字節(jié)
  nrf905_SpiRW(CRC16_EN | XOF_16MHz);            //CRC16模式使能,晶體振蕩器頻率16MHz
  SET(PORTB,CSN);                 // Disable Spi
}

uchar nrf905_SpiRW(uchar val) 
{uchar temp;

    SPDR=val;
	while ((SPSR&(1<<SPIF))==0);
	temp=SPDR;
	return temp;
}

//PwrDown->StandBy
void nrf905_StandBy()
{
   SET(PORTB,PWR);
   CLR(PORTB,TRXCE);
   CLR(PORTB,TX_EN);
}

//->PwrDown
void nrf905_Off()
{
  CLR(PORTB,PWR);
}

//->ShockBurst Send
void nrf905_TxOn()
{
  SET(PORTB,PWR);
  SET(PORTB,TX_EN);
  CLR(PORTB,TRXCE);
}

//->ShockBurst Send
void nrf905_TxSend()
{
  SET(PORTB,TRXCE);
  DelayUs(20);//>10us
  CLR(PORTB,TRXCE);//只發(fā)送一次
}

//->ShockBurst Recv
void nrf905_RxOn()
{
  SET(PORTB,PWR);
  CLR(PORTB,TX_EN);//maybe first
  SET(PORTB,TRXCE);
}

//初始化nrf905
void nrf905_Init()
{
   nrf905_StandBy();
   DelayMs(10);//!!!must >3ms
   nrf905_Config();
   
   nrf905_SpiTest();//test...
   nrf905_RxOn();
}

//測試:通過讀配置,判斷SPI操作是否正確
void nrf905_SpiTest()
{uchar i;
  CLR(PORTB,CSN);                   
  nrf905_SpiRW(RC);  //讀配置
  for (i=0;i<10;i++)
  { 
    RxBuf[i]=  nrf905_SpiRW(0);//read from nrf905
  }
  SET(PORTB,CSN);  
}

//寫Tx地址
void nrf905_SetTxAddr()
{
  CLR(PORTB,CSN);                   
  nrf905_SpiRW(WTA);  //寫Tx地址  
  nrf905_SpiRW(TX_ADDRESS_0);
  nrf905_SpiRW(TX_ADDRESS_1);
  nrf905_SpiRW(TX_ADDRESS_2);
  nrf905_SpiRW(TX_ADDRESS_3);
  SET(PORTB,CSN);  
}

//寫Tx數(shù)據(jù)
void nrf905_SetData()
{uchar i;

  CLR(PORTB,CSN);                   
  nrf905_SpiRW(WTP);  //寫TxPayload 
  for (i=0;i<SIZE;i++)
  { 
    nrf905_SpiRW(TxBuf[i]);
  }
  
  SET(PORTB,CSN);  
}

//等待發(fā)送結(jié)束
void nrf905_WaitSended()
{
   while ((PIND&(1<<DR))==0);
}

//發(fā)送TxBuf中的數(shù)據(jù)
void nrf905_SendData()
{
   nrf905_TxOn();//切換到發(fā)送模式
   nrf905_SetTxAddr();//寫發(fā)送地址
   nrf905_SetData();//寫數(shù)據(jù)
   nrf905_TxSend();//啟動發(fā)送
   nrf905_WaitSended();//等待發(fā)送結(jié)束
   
}

//測試直接重新發(fā)送上次寫入的數(shù)據(jù)
void nrf905_SendAgain()
{
   nrf905_TxOn();
   nrf905_TxSend();
   nrf905_WaitSended();
   
}

//讀出接收到的數(shù)據(jù)
void nrf905_ReadData()
{
  uchar i;

  CLR(PORTB,CSN);                   
  nrf905_SpiRW(RRP);  //讀RxPayload 
  for (i=0;i<SIZE;i++)
  { 
    RxBuf[i]=nrf905_SpiRW(0);//read...
  }
  
  SET(PORTB,CSN);  

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利在线观看| 亚洲午夜久久久久久久久电影院| 日本福利一区二区| 成人免费视频在线观看| 99在线热播精品免费| 国产精品白丝在线| 欧美性视频一区二区三区| 亚洲成av人影院| 在线成人免费观看| 伦理电影国产精品| 国产片一区二区| 一本到一区二区三区| 亚洲免费av高清| 91精品国产丝袜白色高跟鞋| 久久www免费人成看片高清| 26uuu亚洲婷婷狠狠天堂| 成人免费视频网站在线观看| 夜夜嗨av一区二区三区| 91麻豆精品国产无毒不卡在线观看 | av在线不卡免费看| 亚洲精品成人少妇| 日韩欧美卡一卡二| 成+人+亚洲+综合天堂| 午夜日韩在线观看| 中文文精品字幕一区二区| 在线一区二区三区四区| 韩国在线一区二区| 亚洲欧美在线另类| 欧美丰满嫩嫩电影| 丁香六月久久综合狠狠色| 亚洲国产一区二区a毛片| 精品999在线播放| 色噜噜狠狠成人中文综合| 日本不卡在线视频| 国产精品狼人久久影院观看方式| 日本韩国欧美国产| 蜜乳av一区二区三区| 国产精品日日摸夜夜摸av| 青青草精品视频| 国产精品毛片久久久久久久| 91国偷自产一区二区使用方法| 丝袜美腿亚洲综合| 国产精品无遮挡| 欧美在线观看18| 精品一区二区三区久久| 亚洲乱码中文字幕| 2020国产精品久久精品美国| 色综合中文字幕| 蜜臀av亚洲一区中文字幕| 国产精品美女久久久久久久网站| 欧日韩精品视频| 国产精品一区在线| 日韩成人午夜精品| 亚洲精品成人悠悠色影视| wwwwww.欧美系列| 欧美日韩免费观看一区二区三区| 婷婷久久综合九色综合绿巨人| 欧美一级欧美一级在线播放| 色88888久久久久久影院野外| 精品在线一区二区| 亚洲一线二线三线视频| 中文字幕av资源一区| 日韩手机在线导航| 91免费看片在线观看| 国产酒店精品激情| 美女视频一区在线观看| 一区二区三区毛片| 中文字幕制服丝袜成人av| 亚洲精品在线网站| 91精品国产黑色紧身裤美女| www.亚洲人| 国产一区二区三区免费| 日韩高清在线电影| 亚洲成人高清在线| 亚洲一区自拍偷拍| 亚洲精品欧美激情| 国产精品系列在线| 久久久久九九视频| 精品日韩欧美一区二区| 51精品国自产在线| 欧美视频三区在线播放| 色94色欧美sute亚洲13| 成人高清免费在线播放| 国产一区二区三区在线观看精品| 日韩av一区二区三区| 日韩成人午夜电影| 日韩电影一二三区| 青娱乐精品视频| 秋霞午夜鲁丝一区二区老狼| 婷婷国产在线综合| 日韩av中文在线观看| 日韩高清一区在线| 日韩精品电影在线观看| 亚洲bt欧美bt精品| 亚洲bdsm女犯bdsm网站| 日产国产高清一区二区三区| 青青草伊人久久| 国产福利精品一区| 成人午夜又粗又硬又大| av中文字幕不卡| 在线一区二区三区做爰视频网站| 色综合久久88色综合天天免费| 一本一本大道香蕉久在线精品| 不卡的av电影| 色婷婷久久综合| 欧美性色黄大片| 91精品福利在线一区二区三区| 91精品一区二区三区久久久久久| 911精品国产一区二区在线| 欧美刺激午夜性久久久久久久| 精品久久久久久久人人人人传媒| www成人在线观看| 最新国产の精品合集bt伙计| 一二三四区精品视频| 午夜国产精品一区| 成人免费观看男女羞羞视频| 一本色道久久综合亚洲91| 欧美亚洲综合另类| 精品久久一区二区三区| 国产精品国产自产拍高清av王其| 亚洲综合一区在线| 毛片一区二区三区| www.日韩精品| 在线播放视频一区| 久久你懂得1024| 自拍偷在线精品自拍偷无码专区 | 成人性视频免费网站| 91免费小视频| 日韩一二三区视频| 亚洲欧洲性图库| 奇米精品一区二区三区在线观看一 | 成人夜色视频网站在线观看| 91黄色小视频| 久久精品免视看| 亚洲香蕉伊在人在线观| 国产美女精品一区二区三区| 成人app网站| 欧美精品久久一区| 国产欧美日韩在线视频| 亚洲成a人v欧美综合天堂| 国产成人在线色| 91精品国产综合久久久蜜臀粉嫩 | 欧美日韩另类国产亚洲欧美一级| 日韩精品中午字幕| 亚洲最色的网站| 国产精品一区二区在线观看网站| 欧美系列一区二区| 欧美激情一区二区三区在线| 日韩精品午夜视频| 91电影在线观看| 精品国产网站在线观看| 秋霞av亚洲一区二区三| 在线精品亚洲一区二区不卡| 国产精品污网站| 精品一区二区精品| 欧美日韩三级视频| 亚洲免费av网站| 成人黄页在线观看| 91色在线porny| 久久精品一区蜜桃臀影院| 亚洲婷婷综合久久一本伊一区 | 日韩在线观看一区二区| 99国产精品视频免费观看| 精品国产不卡一区二区三区| 日韩精品亚洲一区| 欧美三级中文字| 亚洲精品日日夜夜| 国产激情偷乱视频一区二区三区| 91精品国产乱码久久蜜臀| 亚洲福利一区二区三区| 欧美亚洲图片小说| 亚洲综合另类小说| 成人免费毛片aaaaa**| 精品国产伦理网| 另类小说图片综合网| 欧美大片顶级少妇| 久久精品国产亚洲高清剧情介绍| 欧美日韩国产综合久久| 一个色在线综合| 欧美探花视频资源| 性做久久久久久久久| 欧美三级日韩三级国产三级| 亚洲免费色视频| 欧美色倩网站大全免费| 亚洲一区二区3| 欧美精品久久天天躁| 日本午夜一区二区| 91精品国产免费| 久国产精品韩国三级视频| 精品国产免费人成在线观看| 国产一区二区不卡在线| 国产欧美日韩亚州综合| 99精品视频一区二区| 亚洲情趣在线观看| 欧美日韩精品一区二区三区四区| 亚洲与欧洲av电影| 欧美一区二区三区免费观看视频 | 色噜噜狠狠成人中文综合| 亚洲乱码国产乱码精品精小说 | 亚洲成人激情综合网|