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

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

?? hotpower_nrf905.c

?? nrf905配置程序發(fā)送接收及應(yīng)用
?? C
字號:
//21IC.bbs 上HotPower的部分Demo, C51環(huán)境
//和maochao老師的AVR上的SPI DEMO
/*-----------------------------------------------
        nrf905管腳定義
------------------------------------------------*/
sbit    TX_EN    = P2^6;
sbit    TRX_CE    = P2^5;
sbit    PWR_UP    = P2^4;
sbit    MISO    = P2^3;
sbit    MOSI    = P2^2;
sbit    SCK        = P2^1;
sbit    CSN        = P2^0;

sbit    AM        = P3^2;
sbit    DR        = P3^3;
sbit    CD        = P3^5;

sbit    KEY0    = P0^0;
sbit    KEY1    = P0^1;
sbit    KEY2    = P0^2;
sbit    KEY3    = P0^3;
sbit    LED0    = P0^4;
sbit    LED1    = P0^5;
sbit    LED2    = P0^6;
sbit    LED3    = P0^7;
#define Status_AM 0x80
#define Status_DR 0x20

/*-------------------------------------------------------------------------------------------
nrf905配置寄存器宏定義

        nrf905配置寄存器(10Byte)
工作頻率f=(422.4+CH_NO/10)*(1+HFREQ_PLL)MHz

HotPower@126.com    2004.10.14
-------------------------------------------------------------------------------------------*/
#define RX_ADDRESS           0x00000000               //接收有效地址(本方)
#define TX_ADDRESS           0x02345678               //發(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頻段基準(zhǔn)頻率)
#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頻段基準(zhǔn)頻率)
#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頻段基準(zhǔn)頻率)
#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命令控制字
------------------------------------------------*/
#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
 


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

/*------------------------------------------------
        SPI讀寫一體化函數(shù)SpiReadWrite()
入口參數(shù):
        val  寫入命令或數(shù)據(jù)
出口參數(shù):
        R7   讀出數(shù)據(jù)
------------------------------------------------*/
unsigned char SpiReadWrite(unsigned char val) using 0
{
unsigned char i;
  ACC = val;
  for (i = 8; i > 0; i --)
  {
     CY = MISO;//取數(shù)據(jù)SO
    _rlca_();//存數(shù)據(jù)ACC.0讀數(shù)據(jù)ACC.7同時進(jìn)行
    MOSI = CY;//送數(shù)據(jù)SI
    SCK = 1;//上升沿打入數(shù)據(jù)
    _nop_();
    SCK  = 0;//下降沿讀入數(shù)據(jù)(首次為假動作)
  }
  return ACC;
}


//******************************************************
//以下是maochao老師的SPI的Demo

#define SIZE 100     
unsigned char SPI_rx_buff[SIZE];     
unsigned char SPI_tx_buff[SIZE];     
unsigned char rx_wr_index,rx_rd_index,rx_counter,rx_buffer_overflow;     
unsigned char tx_wr_index,tx_rd_index,tx_counter,SPI_ok;     

#pragma interrupt_handler spi_stc_isr:18     
void spi_stc_isr(void)     
{     
  SPI_rx_buff[rx_wr_index] = SPDR;    //從ISP口讀出收到的字節(jié)   
  SPI_ok = 1;                         // SPI 空閑   
  if (++rx_wr_index == SIZE) rx_wr_index = 0;    //放入接收緩沖區(qū),并調(diào)整隊列指針     
  if (++rx_counter == SIZE)     
  {     
    rx_counter = 0;     
    rx_buffer_overflow = 1;     
  }     
  if (tx_counter)        //如果發(fā)送緩沖區(qū)中有待發(fā)的數(shù)據(jù)     
  {     
     --tx_counter;     
     SPDR = SPI_tx_buff[tx_rd_index]; //發(fā)送一個字節(jié)數(shù)據(jù),并調(diào)整指針     
     if (++tx_rd_index == SIZE) tx_rd_index = 0;    
     SPI_ok = 0;                      // SPI 發(fā)送工作  
  }     
}     

unsigned char getSPIchar(void)     
{     
  unsigned char data;     
  while (rx_counter == 0);     //無接收數(shù)據(jù),等待     
  data = SPI_rx_buff[rx_rd_index];    //從接收緩沖區(qū)取出一個SPI收到的數(shù)據(jù)     
  if (++rx_rd_index == SIZE) rx_rd_index = 0;    //調(diào)整指針     
  CLI();     
  --rx_counter;     
  SEI();     
  return data;     
}     

void putSPIchar(char c)      
{      
  while (tx_counter == SIZE);//發(fā)送緩沖區(qū)滿,等待      
  CLI();      
  if (tx_counter || SPI_ok==0 )      //發(fā)送緩沖區(qū)已中有待發(fā)數(shù)據(jù)      
  {                //或SPI正在發(fā)送數(shù)據(jù)時      
    SPI_tx_buffer[tx_wr_index] = c;    //將數(shù)據(jù)放入發(fā)送緩沖區(qū)排隊      
    if (++tx_wr_index == SIZE) tx_wr_index = 0;    //調(diào)整指針      
    ++tx_counter;      
  }      
  else   
  {      
    SPDR = c;        // 發(fā)送緩沖區(qū)中空且SPI口空閑,直接放入SPDR由SIP口發(fā)送      
    SPI_ok = 0;      // SPI 發(fā)送工作  
  }   
  SEI();      
}    

void spi_init(void)     
{     
  unsigned chat temp;     
  DDRB |= 0x080;    //MISO=input and MOSI,SCK,SS = output     
  PORTB |= 0x80;    //MISO上拉電阻有效      
  SPCR = 0xD5;    //SPI允許,主機(jī)模式,MSB,允許SPI中斷,極性方式01,1/16系統(tǒng)時鐘速率     
  SPSR = 0x00;     
  temp = SPSR;     
  temp = SPDR;    //清空SPI,和中斷標(biāo)志,使SPI空閑     
  SPI_ok = 1;     // SPI 空閑   
}     

void main(void)     
{     
  unsigned char I;     
  CLI();        //關(guān)中斷     
  spi_init();    //初始化SPI接口     
  SEI();        //開中斷     
  while()     
  {     
    putSPIchat(i);        //發(fā)送一個字節(jié)     
    i++;     
    getSPIchar();        //接收一個字節(jié)(第一個字節(jié)為空字節(jié))     
    ………     
  }     
}     

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区国产精品| 日本在线不卡一区| 亚洲黄色片在线观看| 亚洲v日本v欧美v久久精品| 久久精品国产亚洲aⅴ| 国产在线不卡一区| 中文字幕综合网| 日韩精品久久理论片| 成人永久aaa| 欧美女孩性生活视频| 成人app网站| 欧美日韩和欧美的一区二区| 精品国产免费久久| 亚洲精选免费视频| 精品一区免费av| 色综合天天性综合| 美国av一区二区| 99精品视频在线播放观看| 在线不卡一区二区| 中文字幕欧美一区| 日韩电影一区二区三区四区| 不卡的av电影在线观看| 欧美一级在线免费| 亚洲人成精品久久久久久| 极品少妇xxxx精品少妇| 欧美性大战xxxxx久久久| 国产一区二区影院| 欧美体内she精高潮| 国产片一区二区三区| 午夜电影网亚洲视频| 成人午夜在线视频| 日韩国产高清在线| 色婷婷综合久久久久中文| 久久天天做天天爱综合色| 亚洲成人中文在线| 成人18视频在线播放| 精品一区二区在线看| 欧美视频在线一区二区三区| 欧美—级在线免费片| 日韩av午夜在线观看| 日本高清视频一区二区| 国产网红主播福利一区二区| 日韩av在线发布| 91福利视频在线| 中文字幕日韩av资源站| 国产精品羞羞答答xxdd| 日韩欧美精品三级| 日韩专区一卡二卡| 欧美性猛交xxxxxx富婆| 亚洲欧美电影一区二区| av电影在线观看不卡| 久久精品一区蜜桃臀影院| 蜜桃一区二区三区在线观看| 欧美日韩国产首页在线观看| 亚洲免费色视频| 91免费观看在线| 国产精品久久久久久久久搜平片| 国产精品自在在线| 久久综合色播五月| 蜜桃av噜噜一区| 日韩视频国产视频| 青青草97国产精品免费观看无弹窗版| 欧美午夜不卡在线观看免费| 亚洲欧美日韩国产成人精品影院| 成人免费看的视频| 国产精品免费人成网站| 成人永久免费视频| 中文字幕在线一区免费| 国产成人在线视频播放| 久久久国产综合精品女国产盗摄| 国产一区二区成人久久免费影院| 精品欧美乱码久久久久久| 久久电影国产免费久久电影| 日韩免费观看高清完整版在线观看| 日韩国产欧美在线观看| 欧美人妇做爰xxxⅹ性高电影| 亚洲国产精品久久一线不卡| 日本一区二区三区免费乱视频| 日韩欧美国产一区二区三区| 99精品一区二区| 精品日韩一区二区| 国产自产v一区二区三区c| 精品1区2区在线观看| 国产福利一区二区三区视频| 久久精品欧美日韩精品| 国产成人免费网站| 中文字幕国产一区| 91麻豆成人久久精品二区三区| 亚洲综合一区在线| 欧美美女一区二区在线观看| 青青草国产精品亚洲专区无| 26uuuu精品一区二区| 国产精品亚洲а∨天堂免在线| 国产精品国产三级国产专播品爱网| 9色porny自拍视频一区二区| 亚洲精品视频在线看| 欧美日韩三级一区| 蜜臀精品一区二区三区在线观看| 久久久天堂av| 色综合久久中文字幕综合网| 天天综合天天综合色| 精品免费一区二区三区| 成人激情免费网站| 亚洲午夜久久久久| 日韩免费在线观看| 岛国av在线一区| 亚洲永久精品大片| 日韩精品一区二区三区三区免费| 国产成人午夜高潮毛片| 亚洲视频香蕉人妖| 69堂精品视频| 丁香婷婷深情五月亚洲| 亚洲丶国产丶欧美一区二区三区| 日韩精品在线一区二区| 成人国产精品免费观看视频| 亚洲1区2区3区4区| 久久午夜免费电影| 色婷婷精品大在线视频| 精品夜夜嗨av一区二区三区| 中文字幕制服丝袜一区二区三区| 91麻豆精品国产91久久久久| 国产精品一区二区果冻传媒| 一区二区免费视频| 精品国产网站在线观看| 色噜噜狠狠色综合中国| 久久精品99国产精品| 亚洲三级久久久| 337p粉嫩大胆噜噜噜噜噜91av| 91亚洲精品久久久蜜桃| 另类综合日韩欧美亚洲| 亚洲乱码国产乱码精品精98午夜| 欧美精品一区二区三区很污很色的| 色狠狠一区二区| 国产中文字幕精品| 亚洲国产毛片aaaaa无费看| 国产亚洲一区二区三区四区| 欧美视频在线一区二区三区 | 一本色道久久综合亚洲91| 麻豆freexxxx性91精品| 亚洲美女区一区| 国产日韩欧美精品电影三级在线| 欧美美女bb生活片| 不卡的av电影| 国产精品一区二区三区网站| 亚洲va欧美va天堂v国产综合| 国产精品嫩草影院com| 日韩精品资源二区在线| 欧美日韩国产123区| 97国产精品videossex| 国产成人夜色高潮福利影视| 久久精品国产澳门| 天涯成人国产亚洲精品一区av| 成人免费在线播放视频| 久久色视频免费观看| 欧美电影免费观看高清完整版| 欧美丝袜自拍制服另类| a4yy欧美一区二区三区| 国产91在线观看丝袜| 国产一区二区三区| 免费人成在线不卡| 亚洲国产视频a| 中文字幕佐山爱一区二区免费| 日本一区二区三区在线不卡| 欧美mv和日韩mv国产网站| 9191成人精品久久| 欧美日韩在线电影| 色欧美日韩亚洲| 91啪亚洲精品| 99久久精品99国产精品| 国产成人精品一区二区三区四区| 国产综合色在线| 久久国产人妖系列| 秋霞电影网一区二区| 偷拍亚洲欧洲综合| 亚洲成人自拍偷拍| 亚洲成a天堂v人片| 亚洲国产精品久久久久秋霞影院| 一区二区久久久久| 一级特黄大欧美久久久| 亚洲精品一二三| 亚洲精选在线视频| 亚洲精品一二三四区| 亚洲一区在线电影| 亚洲一区在线看| 爽好久久久欧美精品| 日本特黄久久久高潮| 麻豆91免费看| 国产综合久久久久久久久久久久| 黄色精品一二区| 国产精品一区2区| 高清在线观看日韩| 成人性生交大片免费| av一区二区不卡| 色婷婷亚洲综合| 在线观看亚洲a| 欧美猛男男办公室激情| 91精品国产日韩91久久久久久| 日韩欧美精品在线视频| 国产午夜一区二区三区| 中文字幕一区二区三区四区不卡|