版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、無線搶答系統(tǒng)本系統(tǒng)用到4個(gè)NRF24L01模塊,最多可以加到 7個(gè)NRF24L01 (其中一個(gè)用作主機(jī)另外的六個(gè)用作從機(jī))。 顯示用的是諾基亞的 5110,MCI用的是52單片機(jī)。經(jīng)親測(cè)發(fā)送和接收都很好。廢話不多說,在此給上原理圖加 程序。附上成品圖閱讀NRF24L01那部分代碼請(qǐng)結(jié)合nrf24L01中文資料中的寄存器介紹結(jié)合起來一起看, 能使你理解 的更透徹。在此附上NRF24L01芯片的寄存器的作用和地址圖片(下圖的截圖是在“ nrf24L01中文 資料”中截的圖需要更完整的“ n rf24L01中文資料”請(qǐng)自己百度搜索下載)主機(jī)代碼可下載到開發(fā)板上也可以自己做一個(gè)可以串口通信的最小系統(tǒng)或
2、者去掉主機(jī)代碼中的串口通信部分下載到 上圖做的板中(記得修改引腳)#in elude #i nclude vintrin s.h typedef un sig ned char uchar;typedef un sig ned char uint;NRF24L01端口定義sbit MISO =P0A4; sbit MOSI =P0A3; sbit SCK =P0A2; sbit CE =P0A0;sbit CSN =P0A1; sbit IRQ =P0A5;*LCD5110 I/O定義sbit LCD_RST =PM4;sbit LCD_CE =PM3;sbit LCD_DC =PM2;sbi
3、t led2=P1A7; /* NRF24L01#defi ne TX_ADR_WIDTH #define RX ADR WIDTHsbit LCD_SCLK =PM0;sbit LCD_Din =PM1;/*按鍵 */sbit KEY仁卩3八6; sbit KEY2=P3A7;/*發(fā)光 極管 */sbit led1=P1A6;地址宏定義 */ 5 uints TX address width/ 5 uints RX address width#defi ne TX_PLOAD_WIDTH 20 / 20 uints TX payload#defi ne RX_PLOAD_WIDTH 20 /
4、 20 uints TX payloadui nt const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; /本地地址uint const RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01; / 接收地址 0 uin t co nst RX_ADDRESS1RX_ADR_WIDTH=0xf1,0xb3,0xb4,0xb5,0xb6; / 接收地址 1 uint const RX_ADDRESS2RX_ADR_WIDTH=0xcd,0xb3,0xb4,0xb5,0xb6; / 接收地址 2 u
5、int const RX_ADDRESS3RX_ADR_WIDTH=0xa3,0xb3,0xb4,0xb5,0xb6; / 接收地址 3 uint const RX_ADDRESS4RX_ADR_WIDTH=0x0f,0xb3,0xb4,0xb5,0xb6; / 接收地址 4僅供參考/*#defi ne READ_REG #defi ne WRITE_REG #defi ne RD_RX_PLOAD #defi ne WR_TX_PLOAD #defi ne FLUSH_TX #defi ne FLUSH_RX #defi ne REUSE_TX #defi ne NOP/*#defi ne
6、CONFIG #defi ne EN_AA*/NRF24L010x00 /0x20 /0x61 / 0xA0 /#defi ne EN_RXADDR #defi ne SETUP_AW #define SETUP RETR0xE1 /0xE2 / _PL 0xE3 / 0xFF /SPI( nRF24L01)0x00 /0x01 /0x02 /0x03 /0x04 /#defi ne RF_CH #defi ne RF_SETUP #defi ne STATUS #defi ne OBSERVE_TX #defi ne CD0x09#defi ne RX_ADDR_P0 #defi ne RX
7、_ADDR_P1 #defi ne RX_ADDR_P2 #defi ne RX_ADDR_P3 #defi ne RX_ADDR_P4 #defi ne RX_ADDR_P5 #defi ne TX_ADDR #defi ne RX_PW_P0 #defi ne RX_PW_P1 #defi ne RX_PW_P2 #defi ne RX_PW_P3 #defi ne RX_PW_P4 #defi ne RX_PW_P5#defi ne FIFO_STATUS /*ASCII0x05 /0x06 / 0x07 / 0x08 /0x0A / 0x0B / 0x0C / 0x0D / 0x0E
8、/ 0x0F / 0x10 / 0x11 / 0x12 / 0x13 / 0x14 / 0x15 / 0x16 /0x17 / FIFO 數(shù)組區(qū)uint const RX_ADDRESS5RX_ADR_WIDTH=0x05,0xb3,0xb4,0xb5,0xb6; / 接收地址 5寄存器指令讀寄存器指令 寫寄存器指令 讀取接收數(shù)據(jù)指令 寫待發(fā)數(shù)據(jù)指令 沖洗發(fā)送FIFO指令 沖洗接收FIFO指令 定義重復(fù)裝載數(shù)據(jù)指令 保留寄存器地*/配置收發(fā)狀態(tài),CR(校驗(yàn)?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式 自動(dòng)應(yīng)答功能設(shè)置 可用信道設(shè)置 收發(fā)地址寬度設(shè)置 自動(dòng)重發(fā)功能設(shè)置 工作頻率設(shè)置 發(fā)射速率、功耗功能設(shè)置 狀態(tài)寄存
9、器 發(fā)送監(jiān)測(cè)功能 地址檢測(cè) 頻道0接收數(shù)據(jù)地址 頻道1接收數(shù)據(jù)地址 頻道2接收數(shù)據(jù)地址 頻道3接收數(shù)據(jù)地址 頻道4接收數(shù)據(jù)地址 頻道5接收數(shù)據(jù)地址 發(fā)送地址寄存器 接收頻道0接收數(shù)據(jù)長(zhǎng)度 接收頻道0接收數(shù)據(jù)長(zhǎng)度 接收頻道0接收數(shù)據(jù)長(zhǎng)度 接收頻道0接收數(shù)據(jù)長(zhǎng)度 接收頻道0接收數(shù)據(jù)長(zhǎng)度 接收頻道0接收數(shù)據(jù)長(zhǎng)度棧入棧出狀態(tài)寄存器設(shè)置*/code unsigned char font6x8926= 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 , 0x00, 0x00, 0x07, 0x00, 0x07,
10、 0x00 , 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 , 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 , 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 , 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 , 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 , 僅供參考/ 數(shù)字和字母 0x00, 0x00, 0x1c, 0x22, 0x41,0x00 , 0x00, 0x00, 0x41,0x22, 0x1c, 0x00 , 0x00, 0x14, 0x08, 0x3E,
11、 0x08, 0x14 , 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 , 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 , 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 , 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 , 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 , 0x00, 0x3E, 0x51,0x49, 0x45, 0x3E , 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 , 0x00, 0x42, 0x61,0x51,0x49,
12、0x46 , 0x00, 0x21, 0x41,0x45, 0x4B, 0x31 , 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 , 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 , 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 , 0x00, 0x01, 0x71,0x09, 0x05, 0x03 , 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 , 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E , 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 ,
13、 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 , 0x00, 0x08, 0x14, 0x22, 0x41,0x00 , 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 , 0x00, 0x00, 0x41,0x22, 0x14, 0x08 , 0x00, 0x02, 0x01,0x51,0x09, 0x06 , 0x00, 0x32, 0x49, 0x59, 0x51,0x3E , 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C , 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 , 0x00, 0x
14、3E, 0x41,0x41, 0x41,0x22 , 0x00, 0x7F, 0x41,0x41,0x22, 0x1C , 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 , 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 , 0x00, 0x3E, 0x41,0x49, 0x49, 0x7A , 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F , 0x00, 0x00, 0x41,0x7F, 0x41, 0x00 , 0x00, 0x20, 0x40, 0x41,0x3F, 0x01 , 0x00, 0x7F, 0x08, 0
15、x14, 0x22, 0x41 , 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 , 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F , 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F , 0x00, 0x3E, 0x41,0x41, 0x41,0x3E , 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 , 0x00, 0x3E, 0x41,0x51, 0x21,0x5E , 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 , 0x00, 0x46, 0x49, 0x49, 0x4
16、9, 0x31 , 0x00, 0x01, 0x01,0x7F, 0x01, 0x01 , 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F , -僅供參考0x20, 0x40,0x40, 0x38,0x14, 0x08,0x08, 0x70,0x51,0x49,0x7F, 0x41,0x2A, 0x55,0x41,0x41,0x02, 0x01,0x40, 0x40,0x01,0x02,0x54, 0x54,0x48, 0x44,0x44, 0x44,0x44, 0x44,0x54, 0x54,0x7E, 0x09,0xA4, 0xA4,0x08, 0x04,0x44,
17、0x7D,0x80, 0x84,0x10, 0x28,0x41,0x7F,0x04, 0x18, 0x00, Ox仆, 0x00, 0x3F, 0x00, 0x63, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x00, 0x7F, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x08, 0x00, 0x18, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x40,
18、0x00, 0x7F, 0x00, 0x00, 0x00, 0x7C,0x20, 0x1F , 0x40, 0x3F , 0x14, 0x63 , 0x08, 0x07 , 0x45, 0x43 , 0x41, 0x00 , 0x2A, 0x55 , 0x7F, 0x00 , 0x02, 0x04 , 0x40, 0x40 , 0x04, 0x00 , 0x54, 0x78 , 0x44, 0x38 , 0x44, 0x20 , 0x48, 0x7F , 0x54, 0x18 , 0x01,0x02 , 0xA4, 0x7C , 0x04, 0x78 , 0x40, 0x00 , 0x7D,
19、0x00 , 0x44, 0x00 , 0x40, 0x00 , 0x04, 0x78 ,僅供參考 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 , 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 , 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 , 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC , 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 , 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 , 0x00, 0x04, 0x3F, 0x44, 0x40
20、, 0x20 , 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C , 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C , 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C , 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 , 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C , 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 , 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 ;標(biāo)志位*/寫入數(shù)據(jù)函數(shù) 初始化函數(shù)/設(shè)置顯示指針函數(shù)/*函*/vo
21、id LCD_write_byte( un sig ned char dat, un sig ned char comma nd); SPI void LCDni t(void);/LCD5110void LCD_set_X Y(un sig ned char X, un sig ned char Y);void LCD_write_char(unsigned char c);/ 寫一個(gè)字符到 LCD5110void LCD_clear(void);/LCD 初始化函數(shù)void inerDelay_us(unsigned char n);/延時(shí)函數(shù)void LCD_write_e nglish
22、_stri ng(u nsig ned char X,un sig ned char Y,char *s);/寫字符串到LCD函數(shù)void LCD_write_english_char(unsigned char X,unsigned char Y,unsigned char ch); / 寫一個(gè)字符到LCD函數(shù)void Delay (un sig ned int s);void NRF24L01ni t(void);uint NRF24L01_SPI_RW(ui nt uchar);uchar NRF24L01_SPI_Read(uchar reg);void NRF24L01_SetRX_
23、Mode(void);uint NRF24L01_SPI_RW_Reg(uchar reg, uchar value);中存入數(shù)據(jù)uint NRF24L01_SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars); reg的數(shù)據(jù),存到pBuf中uint NRF24L01_SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);中寫入數(shù)據(jù)pBufun sig ned char NRF24L01_RxPacket(u nsig ned char* rx_buf);NRF24L01接收到的數(shù)據(jù)void發(fā)送數(shù)
24、據(jù)voidvoidvoid/場(chǎng)延時(shí)函數(shù) /NRF24L01 初始化 /SPI寫入和讀出/讀寄存器reg /設(shè)置接收模式/向寄存器reg/讀取寄存器向寄存器reg由MCU讀取NRF24L01_TxPacket(unsigned char * tx_buf,unsigned char xindaoji); tx_bufUSART_i ni t(void);/USART_TxPacket_char(uchar f_data); /USART_TxPacket_buf(uchar *f_data); / 由 NRF24L01串口的初始化通過串口發(fā)送一個(gè)字節(jié)數(shù)據(jù)函數(shù) 通過串口發(fā)送一個(gè)字符串的數(shù)據(jù)函數(shù)/*
25、/*/ -void Delay (un sig ned int s)un sig ned int i,j;for(i=0; i1000; i+);for(j=0; j 0; n-)_nop_();/*/*函數(shù)名稱:LCD_write_byte函數(shù)功能:模擬SPI接口時(shí)序?qū)憯?shù)據(jù)/命令LCD入口參數(shù):data :寫入的數(shù)據(jù);comma nd:寫數(shù)據(jù)/命令選擇;出口參數(shù):無備注:*/void LCD_write_byte( un sig ned char dat, un sig ned char comma nd)un sig ned char i; LCD_CE = 0; if (comma nd
26、=O)LCD_DC = 0; elseLCD_DC=1; for(i=0;i8;i+) I 15110 片選有效,允許輸入數(shù)據(jù)/寫命令/ 傳送8bit數(shù)據(jù)if(dat& 0x80)LCD_Di n= 1; elseLCD_Din = 0; LCD_SCLK = 0; dat = dat 1; LCD_SCLK = 1;LCD_CE = 1;/禁止5110/*函數(shù)名稱:LCD_i nit函數(shù)功能:5110初始化入口參數(shù):無出口參數(shù):無備注:*僅供參考void LCDni t(void) _LCD_RST = 0;/in erDelay_us(1); LCD_RST = 1; LCD_CE = 0
27、;/in erDelay_us(1); LCD_CE = 1;/in erDelay_us(1); LCD_write_byte(0x21,0); LCD_write_byte(0xc8, 0); LCD_write_byte(0x06, 0); LCD_write_byte(0x13, 0); LCD_write_byte(0x20, 0); LCD_clear();/LCD_write_byte(0x0c, 0); LCD_CE = 0;/ 關(guān)閉/* 函數(shù)名稱:LCD_set_XY函數(shù)功能:設(shè)置LCD坐標(biāo)函數(shù) 入口參數(shù):X: 0-83Y: 0-5出口參數(shù):無 備注:產(chǎn)生一個(gè)讓LCD復(fù)位的低
28、電平脈沖關(guān)閉LCD使能LCD/使用擴(kuò)展命令設(shè)置LCD模式/設(shè)置液晶偏置電壓/溫度校正/ 1:48/使用基本命令,V=0,水平尋址 清屏/設(shè)定顯示模式,正常顯示LCDI;*/void LCD_set_X Y(un sig ned char X, un sig ned char Y) 一 一/ colu mn/ rowLCD_write_byte(0x40 | Y, 0);LCD_write_byte(0x80 | X, 0); LCD_write_char 顯示英文字符c :顯示的字符 無/* 函數(shù)名稱 函數(shù)功能 入口參數(shù) 出口參數(shù) 備注:*/ void LCD_write_char( un s
29、ig ned char c) 一 一un sig ned char line;c -= 32;/數(shù)組的行號(hào)for (li ne=0; li ne6; li ne+)LCD_write_byte(fo nt6x8cli ne, 1);/*LCD_clear: LCD 清屏函數(shù)*/void LCD_clear(void)un sig ned int i;LCD_write_byte(OxOc, 0);LCD_write_byte(0x80, 0);for (i=0; i504; i+)LCD_write_byte(0, 1); 一 一/*函數(shù)名稱: void LCD_write_english_s
30、tring(unsigned char X,unsigned char Y,char *s)函數(shù)功能:寫字符串函數(shù)入口參數(shù):X、丫:位圖繪制的起始X、丫坐標(biāo);*s:字符串;出口參數(shù):無備注: /void LCD_write_e nglish_stri ng(u nsig ned char X,un sig ned char Y,char *s) - -LCD_set_XY(X,Y);while (*s)LCD_write_char(*s);s+;/*函數(shù)名稱: void LCD_write_english_string(unsigned char X,unsigned char Y,char
31、*s) 函數(shù)功能:寫字符串函數(shù)-入口參數(shù):X、丫 :位圖繪制的起始X、丫坐標(biāo);*s:字符串;出口參數(shù):無備注: /void LCD_write_e nglish_char( un sig ned char X,un sig ned char Y,un sig ned char ch) LCD_set_XY(X,Y);LCD_write_char(ch);僅供參考*/*/*NRF24L01 初始化*/void NRF24L01n it(void)in erDelay_us(100);CE=0;/ 芯片使能CSN=1; / (Spi disable)SPI失能,即禁止 2401 芯片的 SPI 功
32、能SCK=0; / 初始化SPI時(shí)鐘NRF24L01_SPI_Write_Buf(WRITE_REG TX_ADDR, TX_ADDRESTX_ADR_WIDTH); / 設(shè) 置本地地址NRF24L01_SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTHO; / 置接收端地址0NRF24L01_SPI_Write_Buf(WRITE_REG RX_ADDR_P1RX_ADDRESSRX_ADR_WIDTH)/ 設(shè) 置接收端地址1NRF24L01_SPI_RW_Reg(WRITE_REG + RX_ADDR_P2,RX_A
33、DDRESS2設(shè)置接收端地址 2NRF24L01_SPI_RW_Reg(WRITE_REG + RX_ADDR_P3,RX_ADDRESS3設(shè)置接收端地址 3NRF24L01_SPI_RW_Reg(WRITE_REG + RX_ADDR_P4,RX_ADDRESS4設(shè)置接收端地址 4NRF24L01_SPI_RW_Reg(WRITE_REG + RX_ADDR_P5,RX_ADDRESS5設(shè)置接收端地址 5NRF24L01_SPI_RW_Reg(WRITE_REG + EN_AA,0x3f); / 頻道 0,1,2,3,4,5 自動(dòng) ACK 應(yīng)答允許NRF24L01_SPI_RW_Reg(WR
34、ITE_REG + EN_RXADDR,0x3f); / 允許接收地址有頻道0,1,2,3,4,5,如果需要多頻道可以參考Page21NRF24L01_SPI_RW_Reg(WRITE_REG+SETUP_RETR,0x1/a )設(shè)置自動(dòng)重發(fā)的延時(shí)和次數(shù), 延時(shí)大小為4000+86us,次數(shù)5次NRF24L01_SPI_RW_Reg(WRITE_REG + RF_CH,0);/設(shè)置信道工作為 2.4GH乙 收發(fā)必須一致NRF24L01_SPI_RW_Reg(WRITE_REG + RX_PW_P0,RX_PLOAD_WlD設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為32字節(jié)NRF24L01_SPI_RW_Re
35、g(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH置接收數(shù)據(jù)長(zhǎng)度, 本次設(shè)置為32字節(jié)NRF24L01_SPI_RW_Reg(WRITE_REG + RX_PW_P2, RX_PLOAD_WIDTH置接收數(shù)據(jù)長(zhǎng)度, 本次設(shè)置為32字節(jié)NRF24L01_SPI_RW_Reg(WRITE_REG + RX_PW_P3, RX_PLOAD_WIDTH置接收數(shù)據(jù)長(zhǎng)度, 本次設(shè)置為32字節(jié)NRF24L01_SPI_RW_Reg(WRITE_REG + RX_PW_P4, RX_PLOAD_WIDTH置接收數(shù)據(jù)長(zhǎng)度, 本次設(shè)置為32字節(jié)NRF24L01_SPI_RW_Reg(WR
36、ITE_REG + RX_PW_P5, RX_PLOAD_WIDTH置接收數(shù)據(jù)長(zhǎng)度, 本次設(shè)置為32字節(jié)NRF24L01_SPI_RW_Reg(WRITE_REG + RF_SETUP,0x07); 設(shè)置發(fā)射速率為 2MHZ 發(fā)射功率為最大值0dB僅供參考*NRF24L01_SPI_RW_Reg(WRITE_REG+CONFIG,0x0f); /IRQ收發(fā)完成中斷響應(yīng),16為CRC主接收/*/* 函數(shù):uint SPI_RW(uint uchar)/*功能:NRF24L0的SPI寫時(shí)序/*/uint NRF24L01_SPI_RW(ui nt uchar) uint bit_ctr;即8位II
37、發(fā)送uchar數(shù)據(jù),并返回接收到的數(shù)據(jù)/ 位計(jì)數(shù)器,用于確定接收或者發(fā)送的位數(shù),這里是一個(gè)字節(jié)for(bit_ctr=0;bit_ctr8;bit_ct 葉+) MOSI = (uchar & 0x80);MSB to MOSI,即先送高位后送低位uchar = (uchar 1); 準(zhǔn)備傳送下一個(gè)數(shù)據(jù)SCK = 1; uchar |= MISO;據(jù),他是先先送高位后送低位SCK = 0;IIIIIIII(output uchar, MSB to MOSI(shift next bit into MSB.)輸出數(shù)據(jù),)右移一位,(Set SCK high.)設(shè)置 SCK為高(capture c
38、urrent MISO bit)接收 24L01 傳出的數(shù)II沿,從MSO送出數(shù)據(jù),在下一次 return(uchar);.then set SCK low again)拉低SCK時(shí)鐘產(chǎn)生下降SCK為高時(shí)讀入MISOII retur n read ucharI*I*函數(shù):1 - : -uchar SPI_Read(uchar reg)I*功能:NRF24L0的 SPI 時(shí)序*Iuchar NRF24L01_SPI_Read(uchar reg)uchar reg_val;CSN = 0;II(CSNIow, initialize SPI communication.) CSN拉低,啟動(dòng)SPI通
39、信NRF24L01_SPI_RW(reg); II( Select register to read from.)設(shè)置讀取的寄存器一 一reg_val = NRF24L01_SPI_RW(0); II( .the n read registervalue)讀出寄存器中的數(shù)據(jù)CSN = 1;II( CSN high, terminate SPI communication) CSN拉高,終止SPI通信return(reg_val); II (return register value)返回接收到的數(shù)據(jù) _僅供參考*/*功能:NRF24L0讀寫寄存器函數(shù)*/uint NRF24L01_SPI_RW
40、_Reg(uchar reg, uchar value)uint status;CSN= 0;/(CSNIow, init SPI transaction ) SCN拉低,啟動(dòng) SPI僅供參考通信status = NRF24L01_SPI_RW(reg); / (select register)選擇要操作的寄存器NRF24L01_SPI_RW(value);/ (.a nd write value to it.)向選擇的寄存器中寫入數(shù)據(jù)/ (CSN high again)CSN拉高,終止 SPI 通信/(return nRF24L01 status uchar )返回 2401 reg 寄存C
41、SN = 1;return(status);器的狀態(tài)/*1 I J. */* 函數(shù):uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能:用于讀數(shù)據(jù),reg :為寄存器地址,pBuf:為待讀出數(shù)據(jù)地址,uchars :讀出數(shù)據(jù)的 個(gè)數(shù)/*/uint NRF24L01_SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars) -uint status,uchar_ctr;CSN = 0;/ Set CSN low, i nit SPI tran actionstatus = NRF24L
42、01_SPI_RW(reg); / Select register to write to and readstatus ucharfor(uchar_ctr=0;uchar_ctruchars;uchar_ctr+)pBufuchar_ctr = NRF24L01_SPI_RW(0);/CSN = 1;/ return nRF24L01 status ucharreturn(status);/*/* 函數(shù):uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)/*功能:用于寫數(shù)據(jù),reg:為寄存器地址,pBuf:為待寫入數(shù)據(jù)地址,uchars :寫入數(shù)據(jù)的個(gè) 數(shù)/* */uint NRF24L01_SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars) 一一一uint status,uchar_ctr;CSN = 0; /SPI使能status = NRF24L01_SPI_RW(reg); for(uchar_ctr=0; uchar_ctruchars; uchar_ctr+) /NRF24L01_S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年店面租賃合同模板
- 2024年度版權(quán)許可合同:版權(quán)持有者與使用者的許可協(xié)議
- 2024年建筑工程抹灰工程專業(yè)分包協(xié)議
- 2024服裝加工訂單合同
- 2024年區(qū)塊鏈技術(shù)研究與應(yīng)用服務(wù)承包合同
- 2024工業(yè)設(shè)備購銷合同模板
- 2024年企業(yè)購置綠色環(huán)保廠房合同
- 2024年度網(wǎng)絡(luò)安全防護(hù)及監(jiān)控合同
- 2024房地產(chǎn)合同模板房屋拆遷協(xié)議
- 2024年度9A文礦產(chǎn)資源開發(fā)利用合作合同
- 小學(xué)英語人教新起點(diǎn)五年級(jí)上冊(cè)Unit3Animalsunit3storytime
- 醫(yī)療質(zhì)量管理與持續(xù)改進(jìn)工作記錄
- 幼兒園突發(fā)事件應(yīng)急處置流程圖
- 小學(xué)《信息技術(shù)》考試試題及
- 檢傷分類課件
- (新版)重癥專科護(hù)士考試題庫(含答案)
- 監(jiān)理情況匯報(bào)(模板)
- 《詩經(jīng)》兩首-完整版課件
- 商務(wù)部績(jī)效考核表
- 無犯罪記錄證明書申請(qǐng)表模板(通用)
- 鋼結(jié)構(gòu)可行性分析報(bào)告
評(píng)論
0/150
提交評(píng)論