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

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

?? nrf24l01+?

?? nRF24L01無線模塊6個接收通道
??
字號:
#include"nRF24L01.h"


uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0xb1,0xb2,0xb3,0xb4,0x01};//0x34,0x43,0x10,0x10,0x01};  // 路由節(jié)點地址
uchar code RX_ADDRESS1[TX_ADR_WIDTH] = {0xb0,0xb2,0xb3,0xb4,0x01};//寫地址寄存器是先寫低字節(jié),因此后面幾個字節(jié)相同
uchar code RX_ADDRESS2[1] = {0xb1};
uchar code RX_ADDRESS3[1] = {0xb2};
uchar code RX_ADDRESS4[1] = {0xb3};
uchar code RX_ADDRESS5[1] = {0xb4};
uchar RX_BUF[TX_PLOAD_WIDTH];
uchar TX_BUF[TX_PLOAD_WIDTH]=
{
0x01,0x02,0x03,0x4,0x05,0x06,0x07,0x08,
0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,
0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,
0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,
};
uchar flag,status;
uchar DATA = 0x01;

uchar bdata sta;
sbit  RX_DR	 = sta^6;
sbit  TX_DS	 = sta^5;
sbit  MAX_RT = sta^4;
/**************************************************/

/**************************************************
函數(shù): init_io()

描述:
    初始化IO
/**************************************************/
void init_io(void)
{
	CE  = 0;        // 待機
	CSN = 1;        // SPI禁止
	SCK = 0;        // SPI時鐘置低
	IRQ = 1;        // 中斷復位
	LED = 0x00;		// 關(guān)閉指示燈
}
/**************************************************/

/**************************************************
函數(shù):delay_ms()

描述:
    延遲x毫秒
/**************************************************/
void delay_ms(uchar x)
{
    uchar i, j;
    i = 0;
    for(i=0; i<x; i++)
    {
       j = 250;
       while(--j);
	   j = 250;
       while(--j);
    }
}
/**************************************************/
/*延時函數(shù)
/******************************************************************************************/
void inerDelay_us(unsigned char n)
{
	for(;n>0;n--)
		_nop_();
}
/**************************************************
函數(shù):SPI_RW()

描述:
    根據(jù)SPI協(xié)議,寫一字節(jié)數(shù)據(jù)到nRF24L01,同時從nRF24L01
	讀出一字節(jié)
/**************************************************/
uchar SPI_RW(uchar byte)
{
	uchar i;
   	for(i=0; i<8; i++)          // 循環(huán)8次
   	{
   		MOSI = (byte & 0x80);   // byte最高位輸出到MOSI
   		byte <<= 1;             // 低一位移位到最高位
   		SCK = 1;                // 拉高SCK,nRF24L01從MOSI讀入1位數(shù)據(jù),同時從MISO輸出1位數(shù)據(jù)
   		byte |= MISO;       	// 讀MISO到byte最低位
   		SCK = 0;            	// SCK置低
   	}
    return(byte);           	// 返回讀出的一字節(jié)
}
/**************************************************/

/**************************************************
函數(shù):SPI_RW_Reg()

描述:
    寫數(shù)據(jù)value到reg寄存器
/**************************************************/
uchar SPI_RW_Reg(uchar reg, uchar value)
{
	uchar status;
  	CSN = 0;                   // CSN置低,開始傳輸數(shù)據(jù)
  	status = SPI_RW(reg);      // 選擇寄存器,同時返回狀態(tài)字
  	SPI_RW(value);             // 然后寫數(shù)據(jù)到該寄存器
  	CSN = 1;                   // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  	return(status);            // 返回狀態(tài)寄存器
}
/**************************************************/

/**************************************************
函數(shù):SPI_Read()

描述:
    從reg寄存器讀一字節(jié)
/**************************************************/
uchar SPI_Read(uchar reg)
{
	uchar reg_val;
  	CSN = 0;                    // CSN置低,開始傳輸數(shù)據(jù)
  	SPI_RW(reg);                // 選擇寄存器
  	reg_val = SPI_RW(0);        // 然后從該寄存器讀數(shù)據(jù)
  	CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  	return(reg_val);            // 返回寄存器數(shù)據(jù)
}
/**************************************************/

/**************************************************
函數(shù):SPI_Read_Buf()

描述:
    從reg寄存器讀出bytes個字節(jié),通常用來讀取接收通道
	數(shù)據(jù)或接收/發(fā)送地址
/**************************************************/
uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes)
{
	uchar status, i;
  	CSN = 0;                    // CSN置低,開始傳輸數(shù)據(jù)
  	status = SPI_RW(reg);       // 選擇寄存器,同時返回狀態(tài)字
  	for(i=0; i<bytes; i++)
    	pBuf[i] = SPI_RW(0);    // 逐個字節(jié)從nRF24L01讀出
  	CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  	return(status);             // 返回狀態(tài)寄存器
}
/**************************************************/

/**************************************************
函數(shù):SPI_Write_Buf()

描述:
    把pBuf緩存中的數(shù)據(jù)寫入到nRF24L01,通常用來寫入發(fā)
	射通道數(shù)據(jù)或接收/發(fā)送地址
/**************************************************/
uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes)
{
	uchar status, i;
  	CSN = 0;                    // CSN置低,開始傳輸數(shù)據(jù)
  	status = SPI_RW(reg);       // 選擇寄存器,同時返回狀態(tài)字
  	for(i=0; i<bytes; i++)
    	SPI_RW(pBuf[i]);        // 逐個字節(jié)寫入nRF24L01
  	CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  	return(status);             // 返回狀態(tài)寄存器
}
/**************************************************/

/**************************************************
函數(shù):RX_Mode()

描述:
    這個函數(shù)設(shè)置nRF24L01為接收模式,等待接收發(fā)送設(shè)備的數(shù)據(jù)包
/**************************************************/
void RX_Mode(void)
{
	CE = 0;
  	SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);              // CRC使能,16位CRC校驗,上電,接收模式
  	CE = 1;                                            // 拉高CE啟動接收設(shè)備
	inerDelay_us(130);
}
/**************************************************/

/**************************************************
函數(shù):TX_Mode()

描述:
    這個函數(shù)設(shè)置nRF24L01為發(fā)送模式,(CE=1持續(xù)至少10us),
	130us后啟動發(fā)射,數(shù)據(jù)發(fā)送結(jié)束后,發(fā)送模塊自動轉(zhuǎn)入接收
	模式等待應(yīng)答信號。
/**************************************************/
void TX_Mode(uchar * BUF)
{
	CE = 0;
  	SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);     // 寫入發(fā)送地址
  	SPI_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH);                  // 寫數(shù)據(jù)包到TX FIFO
	CE = 1;
	inerDelay_us(10);
}
/**************************************************/

/**************************************************
函數(shù):Check_ACK()

描述:
    檢查接收設(shè)備有無接收到數(shù)據(jù)包,設(shè)定沒有收到應(yīng)答信
	號是否重發(fā)
/**************************************************/
uchar Check_ACK(bit clear)
{
	while(IRQ);
	sta = SPI_RW(NOP);                    // 返回狀態(tài)寄存器
	if(MAX_RT)
		if(clear)                         // 是否清除TX FIFO,沒有清除在復位MAX_RT中斷標志后重發(fā)
			SPI_RW(FLUSH_TX);
	SPI_RW_Reg(WRITE_REG + STATUS, sta);  // 清除TX_DS或MAX_RT中斷標志
	IRQ = 1;
	if(TX_DS)
		return(0x00);
	else
		return(0xff);
}
/**************************************************/

/**************************************************
函數(shù):CheckButtons()

描述:
    檢查按鍵是否按下,按下則發(fā)送一字節(jié)數(shù)據(jù)
/**************************************************/
void CheckButtons()
{
	uchar i=0;
	if(flag)		           // 接受完成
	{
		flag = 0;		       // 清標志
		R_S_Byte('N');
		R_S_Byte(status);
		for(i=0;i<32;i++)
		   R_S_Byte(RX_BUF[i]);

		LED = 0xff;		       // 關(guān)閉LED
	}
}
/**************************************************/
//************************************串口初始化*********************************************************
void StartUART( void )
{  							//波特率2400
     SCON = 0x50;
     TMOD = 0x20;
     TH1 = 0xF3;
     TL1 = 0xF3;
     PCON = 0x00;
     TR1 = 1;
}
//************************************通過串口將接收到數(shù)據(jù)發(fā)送給PC端**************************************
void R_S_Byte(uchar R_Byte)
{	
	 SBUF = R_Byte;  
    while( TI == 0 );				//查詢法
  	 TI = 0;    
}
/************************************************************/
// 單片機外部中斷,讀取接收到的數(shù)據(jù)
/************************************************************/
void exter0() interrupt 0
{
	sta = SPI_Read(STATUS);	  // 讀狀態(tài)寄存器
   if(RX_DR)				  // 判斷是否接受到數(shù)據(jù)
	{
		status=sta;
		status&=0x0e;
		status>>=1;
		SPI_Read_Buf(RD_RX_PLOAD, RX_BUF, TX_PLOAD_WIDTH);  // 從RX FIFO讀出數(shù)據(jù)
		flag = 1;
	}
	SPI_RW_Reg(WRITE_REG + STATUS, sta);  // 清除RX_DS中斷標志	
}
/************************************************************/
// nRF24L01初始化
/************************************************************/
void Init_24L01()
{
	CE=0;
	SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);//寫接收通道0的接收地址,與發(fā)送地址相同
	SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, RX_ADDRESS1, TX_ADR_WIDTH); //寫接收通道1的接收地址
	SPI_Write_Buf(WRITE_REG + RX_ADDR_P2, RX_ADDRESS2, 1);//寫接收通道2的接收地址
	SPI_Write_Buf(WRITE_REG + RX_ADDR_P3, RX_ADDRESS3, 1);//寫接收通道3的接收地址
	SPI_Write_Buf(WRITE_REG + RX_ADDR_P4, RX_ADDRESS4, 1);//寫接收通道4的接收地址
	SPI_Write_Buf(WRITE_REG + RX_ADDR_P5, RX_ADDRESS5, 1);//寫接收通道5的接收地址
	SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  // 接收通道0選擇和發(fā)送通道相同有效數(shù)據(jù)寬度,32字節(jié)長度
  	SPI_RW_Reg(WRITE_REG + RX_PW_P1, TX_PLOAD_WIDTH);//32字節(jié)長度
  	SPI_RW_Reg(WRITE_REG + RX_PW_P2, TX_PLOAD_WIDTH);//32字節(jié)長度
  	SPI_RW_Reg(WRITE_REG + RX_PW_P3, TX_PLOAD_WIDTH);//32字節(jié)長度
  	SPI_RW_Reg(WRITE_REG + RX_PW_P4, TX_PLOAD_WIDTH);//32字節(jié)長度
  	SPI_RW_Reg(WRITE_REG + RX_PW_P5, TX_PLOAD_WIDTH);//32字節(jié)長度
  	SPI_RW_Reg(WRITE_REG + EN_AA, 0x3f);       // 使能所有接收通道自動應(yīng)答
  	SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x3f);   // 使能所有接收通道
	SPI_RW_Reg(WRITE_REG + RF_CH, 40);                 // 選擇射頻通道0x40
	SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);            // 數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益
	SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);      // CRC使能,16位CRC校驗,上電
	SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a);  // 自動重發(fā)延時等待250us+86us,自動重發(fā)10次
	CE=1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.欧美日韩| 亚洲丝袜自拍清纯另类| 欧美激情在线观看视频免费| 亚洲精品福利视频网站| 国产一区二区三区黄视频| 欧美亚一区二区| 中文字幕av在线一区二区三区| 亚洲一区电影777| 99re成人在线| 久久综合九色综合欧美98| 亚洲一级在线观看| 91免费版在线| 国产日本亚洲高清| 免费亚洲电影在线| 337p亚洲精品色噜噜| 亚洲一区在线视频| 91高清视频免费看| 中文字幕五月欧美| av网站一区二区三区| 国产视频一区二区在线| 国产精品影视网| 2欧美一区二区三区在线观看视频| 丝袜美腿亚洲综合| 欧美在线视频日韩| 亚洲va天堂va国产va久| 欧美性受xxxx| 亚洲一区二区精品久久av| 在线免费观看日本欧美| 一二三区精品视频| 在线观看av一区| 亚洲成a人v欧美综合天堂下载| 日韩欧美亚洲国产精品字幕久久久| 亚洲va国产天堂va久久en| 蜜臀a∨国产成人精品| 9色porny自拍视频一区二区| 亚洲国产高清不卡| 欧美性受极品xxxx喷水| 国产精品色婷婷| 婷婷激情综合网| 欧美激情综合五月色丁香小说| 欧美日韩另类国产亚洲欧美一级| 国产精品888| 日本v片在线高清不卡在线观看| 中国av一区二区三区| 88在线观看91蜜桃国自产| 91亚洲精华国产精华精华液| 久久 天天综合| 亚洲一区二区视频在线观看| 欧美激情在线一区二区| 日韩欧美一二三四区| 欧美视频在线一区二区三区| 99视频有精品| 成人免费的视频| 国产综合一区二区| 免费高清成人在线| 亚洲在线视频一区| 日韩一区在线播放| 中文字幕乱码日本亚洲一区二区 | 日本韩国欧美三级| 国产成人免费在线观看不卡| 久久国产夜色精品鲁鲁99| 亚洲国产精品一区二区www| 亚洲色图色小说| 国产精品国产三级国产普通话蜜臀| 欧美成人精品福利| 日韩欧美在线123| 欧美精品乱码久久久久久| 欧美三级日韩在线| 欧美性videosxxxxx| 色综合天天性综合| 91视视频在线观看入口直接观看www| 福利一区二区在线| 成人av综合一区| 北条麻妃一区二区三区| 成人午夜视频福利| 北条麻妃国产九九精品视频| 成人av高清在线| www.色精品| 日本精品一级二级| 欧美日韩一二三区| 欧美精品第1页| 日韩欧美在线网站| 久久一区二区三区国产精品| 国产午夜亚洲精品羞羞网站| 国产欧美综合色| 18成人在线观看| 亚洲影院在线观看| 日本特黄久久久高潮| 久久精品国产一区二区三区免费看| 日本sm残虐另类| 激情久久久久久久久久久久久久久久| 黄色日韩三级电影| 不卡的av中国片| 欧美曰成人黄网| 日韩一二三区视频| 久久久久国产精品免费免费搜索| 久久久不卡网国产精品一区| 中文字幕在线观看一区| 亚洲欧美日韩中文字幕一区二区三区 | 日韩在线a电影| 天天综合色天天综合| 国模少妇一区二区三区| aa级大片欧美| 欧美偷拍一区二区| 亚洲精品一区二区精华| 中文字幕一区二区三中文字幕| 日本一区二区在线不卡| 亚洲卡通动漫在线| 日韩极品在线观看| 国产suv精品一区二区三区| 99国产一区二区三精品乱码| 欧美色图在线观看| 精品处破学生在线二十三| 亚洲欧洲精品成人久久奇米网| 亚洲福利一区二区三区| 国产精品99久久久| 欧美日韩一区二区在线观看视频| 2023国产精品自拍| 亚洲精品视频在线观看网站| 精品一区二区三区蜜桃| 色综合久久综合网| 精品少妇一区二区三区视频免付费 | 99久久精品免费| 色婷婷久久一区二区三区麻豆| 欧美一区二区在线免费播放| 国产精品久久久久久福利一牛影视 | 中文字幕在线不卡视频| 亚洲一区二区五区| 国产999精品久久久久久绿帽| 在线视频一区二区三| 久久久久国产精品麻豆ai换脸 | 日本一区二区三区免费乱视频 | 五月天网站亚洲| hitomi一区二区三区精品| 欧美一二三区在线| 一区二区在线免费| 成人免费视频视频在线观看免费| 日韩欧美国产午夜精品| 一二三四区精品视频| 不卡视频在线观看| 国产日韩精品一区二区三区| 午夜久久久影院| 色婷婷av一区二区三区之一色屋| 国产午夜精品久久久久久久 | 国产精品亚洲а∨天堂免在线| 欧美日韩国产综合视频在线观看| 国产精品美女久久久久久久久久久| 美腿丝袜亚洲一区| 欧美日本国产视频| 亚洲美女屁股眼交3| 成人动漫一区二区| 久久精品免费在线观看| 美女久久久精品| 欧美一级爆毛片| 午夜久久久久久久久| 欧美亚男人的天堂| 亚洲欧美日本韩国| 91视视频在线直接观看在线看网页在线看 | 日韩一区二区免费在线观看| 亚洲综合999| 色综合天天在线| 一区二区三区四区在线免费观看 | av一区二区不卡| 欧美激情一区二区三区不卡 | 美国欧美日韩国产在线播放| 欧美日韩国产系列| 亚洲成人资源网| 欧美日韩免费一区二区三区视频| 亚洲国产成人精品视频| 欧美日韩一区二区三区在线看| 亚洲成人av免费| 欧美男生操女生| 久久国产三级精品| 久久久亚洲精华液精华液精华液| 国产麻豆午夜三级精品| 国产欧美日韩在线| 91视频一区二区| 亚洲国产精品麻豆| 日韩视频免费观看高清完整版| 麻豆精品在线观看| 国产欧美精品一区| 91美女视频网站| 性做久久久久久久免费看| 日韩天堂在线观看| 国产成人在线电影| **欧美大码日韩| 69堂成人精品免费视频| 久久99国产精品久久| 国产欧美日韩不卡免费| 91理论电影在线观看| 天天综合色天天综合| 久久老女人爱爱| 91在线观看免费视频| 婷婷中文字幕一区三区| 欧美精品一区二| 91久久精品一区二区二区| 麻豆91在线播放| 亚洲欧洲三级电影| 欧美久久一区二区| 成人性生交大片免费看视频在线 |