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

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

?? nrf24l01+?

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


//uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01};  // 定義一個靜態(tài)發(fā)送地址
uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0xb2,0xb2,0xb3,0xb4,0x01};
//uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x02,0xb4,0xb3,0xb2,0xb1};

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;        // 待機(jī)
	CSN = 1;        // SPI禁止
	SCK = 0;        // SPI時鐘置低
	IRQ = 1;        // 中斷復(fù)位
	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ù):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_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 接收設(shè)備接收通道0使用和發(fā)送設(shè)備相同的發(fā)送地址
//	SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, RX_ADDRESS1, TX_ADR_WIDTH); 
//	SPI_Write_Buf(WRITE_REG + RX_ADDR_P2, RX_ADDRESS2, TX_ADR_WIDTH); 
//  	SPI_RW_Reg(WRITE_REG + RX_PW_P1, TX_PLOAD_WIDTH);
  	SPI_RW_Reg(WRITE_REG + EN_AA, 0x3f);               // 使能接收通道0自動應(yīng)答
  	SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x3f);           // 使能接收通道0
  	SPI_RW_Reg(WRITE_REG + RF_CH, 40);                 // 選擇射頻通道0x40
  	SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  // 接收通道0選擇和發(fā)送通道相同有效數(shù)據(jù)寬度
  	SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);            // 數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益
  	SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);              // CRC使能,16位CRC校驗,上電,接收模式
  	CE = 1;                                            // 拉高CE啟動接收設(shè)備
}
/**************************************************/

/**************************************************
函數(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(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 為了應(yīng)答接收設(shè)備,接收通道0地址和發(fā)送地址相同
  	SPI_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH);                  // 寫數(shù)據(jù)包到TX FIFO
  	SPI_RW_Reg(WRITE_REG + EN_AA, 0x3f);       // 使能接收通道0自動應(yīng)答
  	SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x3f);   // 使能接收通道0
  	SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a);  // 自動重發(fā)延時等待250us+86us,自動重發(fā)10次
  	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校驗,上電
	CE = 1;
}
/**************************************************/

/**************************************************
函數(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,沒有清除在復(fù)位MAX_RT中斷標(biāo)志后重發(fā)
			SPI_RW(FLUSH_TX);
	SPI_RW_Reg(WRITE_REG + STATUS, sta);  // 清除TX_DS或MAX_RT中斷標(biāo)志
	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;		       // 清標(biāo)志
		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;    
}

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中斷標(biāo)志	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一二三区| 中文字幕欧美激情| 色综合久久66| 96av麻豆蜜桃一区二区| 成人国产精品免费观看视频| 激情综合网av| 国产剧情在线观看一区二区| 午夜精品爽啪视频| 日韩va亚洲va欧美va久久| 亚洲6080在线| 日本欧美一区二区| 精品一区二区三区蜜桃| 国产精品香蕉一区二区三区| 一区二区三区在线视频观看 | 国产精品免费aⅴ片在线观看| 天天影视网天天综合色在线播放| 日韩一级免费一区| 精品久久久久久无| 国产人成亚洲第一网站在线播放 | 国产在线国偷精品产拍免费yy| 韩国v欧美v日本v亚洲v| 国产成人综合自拍| 色欲综合视频天天天| 欧美日韩专区在线| 在线不卡a资源高清| 精品国产一区二区三区久久久蜜月| 精品对白一区国产伦| 中文字幕第一区| 亚洲激情校园春色| 国产一区二区毛片| 欧美一区二区三区在线观看| 色综合久久久久| 在线综合视频播放| 欧美国产精品一区二区| 午夜精品福利久久久| 成人午夜私人影院| 欧美亚洲国产一区二区三区 | 激情欧美一区二区三区在线观看| 国产99久久久精品| 8v天堂国产在线一区二区| 久久免费看少妇高潮| 亚洲国产日韩a在线播放性色| 国产一区二区三区四区五区入口| 97精品久久久午夜一区二区三区| 777久久久精品| 日韩欧美一区二区在线视频| 色激情天天射综合网| 夜夜精品浪潮av一区二区三区| 欧美性xxxxxxxx| 顶级嫩模精品视频在线看| 久久www免费人成看片高清| 婷婷夜色潮精品综合在线| 1000部国产精品成人观看| 石原莉奈在线亚洲二区| 中文字幕av在线一区二区三区| 性做久久久久久免费观看| 风间由美性色一区二区三区| 欧美高清视频不卡网| 18成人在线观看| 国产激情一区二区三区四区| 欧美一区二区视频网站| 欧美国产禁国产网站cc| 久久综合久久鬼色中文字| 亚洲尤物在线视频观看| 欧美日韩在线一区二区| 欧美精品aⅴ在线视频| 国产精品久久久久久久第一福利 | 中文字幕亚洲在| 久久国产婷婷国产香蕉| 欧美日韩国产另类一区| 亚洲成人免费看| 欧日韩精品视频| 亚洲男帅同性gay1069| 99精品视频在线观看免费| 国产日韩av一区| 国产麻豆精品在线观看| 久久精品一区二区| 国产麻豆精品在线| 中文字幕在线不卡| 亚洲国产精品成人综合色在线婷婷 | 国产一区二区久久| 精品人在线二区三区| 老汉av免费一区二区三区| 日韩欧美久久久| 美女视频免费一区| 精品国产亚洲在线| 国产精品原创巨作av| 亚洲国产精品黑人久久久| 成人精品鲁一区一区二区| 亚洲欧洲av在线| 欧美三级电影在线看| 日本特黄久久久高潮| 久久日一线二线三线suv| 国产精品亚洲а∨天堂免在线| 国产精品免费视频观看| 一本一道久久a久久精品| 亚洲国产欧美在线| 777午夜精品免费视频| 国内不卡的二区三区中文字幕| 26uuu国产一区二区三区| 成熟亚洲日本毛茸茸凸凹| 一区二区三区在线视频免费观看| 欧美老人xxxx18| 国精产品一区一区三区mba视频 | 国产精品系列在线观看| 亚洲精品乱码久久久久| 日韩欧美中文字幕制服| 暴力调教一区二区三区| 亚洲第一精品在线| 久久―日本道色综合久久| 日本高清成人免费播放| 精品一区二区三区久久| 中国色在线观看另类| 欧美日韩国产一区二区三区地区| 亚洲成av人片在线| 久久成人麻豆午夜电影| 国产午夜精品福利| 91成人在线免费观看| 日韩精品每日更新| 中文久久乱码一区二区| 欧美中文字幕不卡| 国产二区国产一区在线观看| 亚洲国产精品一区二区久久恐怖片| 欧美一区二区网站| 91视频免费播放| 国产一区二区主播在线| 婷婷综合五月天| 中文字幕在线不卡一区| 精品成人一区二区三区四区| 欧洲精品视频在线观看| 国产精品一区二区在线看| 亚洲18女电影在线观看| |精品福利一区二区三区| 日韩三级精品电影久久久| 色吊一区二区三区| 本田岬高潮一区二区三区| 国产尤物一区二区| 蜜臀av一区二区在线观看 | 色综合色综合色综合色综合色综合 | 国产中文字幕一区| 午夜精品久久久久久不卡8050| 国产视频一区二区在线| 日韩欧美成人一区二区| 在线免费观看日本欧美| 96av麻豆蜜桃一区二区| 国产成人啪午夜精品网站男同| 激情丁香综合五月| 美女精品一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲成人av福利| 亚洲精品国产a| 伊人婷婷欧美激情| 亚洲自拍偷拍综合| 亚洲制服丝袜av| 亚洲福利一二三区| 性做久久久久久久久| 亚洲国产精品久久久久秋霞影院 | 欧美一区日韩一区| 欧美二区在线观看| 5月丁香婷婷综合| 91麻豆精品国产91久久久更新时间| 欧美在线啊v一区| 精品视频免费看| 欧美日本视频在线| 91麻豆精品国产自产在线观看一区 | 精品久久久久久久久久久久久久久 | 亚洲已满18点击进入久久| 亚洲黄色免费电影| 视频一区二区三区在线| 蜜桃久久久久久| 国产乱理伦片在线观看夜一区| 国产精品亚洲专一区二区三区| 国产自产高清不卡| 色综合久久88色综合天天免费| 91美女视频网站| 欧美一区二区观看视频| 精品国产三级电影在线观看| 国产欧美一区二区精品婷婷| 国产精品二区一区二区aⅴ污介绍| 亚洲视频免费观看| 午夜精品久久一牛影视| 国产成人亚洲精品狼色在线| 色悠悠亚洲一区二区| 69堂国产成人免费视频| 国产精品美女一区二区在线观看| 亚洲免费大片在线观看| 久久超碰97中文字幕| 成人av网址在线| 在线成人小视频| 久久久久国产免费免费 | 亚洲欧洲另类国产综合| 欧美国产成人精品| 亚瑟在线精品视频| 成人免费观看av| 欧美日韩精品一区二区三区| 日韩欧美精品在线视频| 最好看的中文字幕久久| 久久精品国产精品亚洲精品| 成人99免费视频| 精品少妇一区二区三区在线播放|