ÆóÒµ¼Ò×îÕä¹óµÄÆ·ÖÊÊÇÈ;¢

在中国经营企业需要具备多种品质,如坚韧不拔、大胆尝试及在政策与市场边界的智慧抉择等,这些都有助于一个人在商海中取得成就。
ÔÚÖйú×öÆóÒµÐèÒªºÜ¶àÆ·ÖÊ£ºÐá¾õÁéÃô¡¢µ¨´ó°üÌì¡¢î£Öǹû¶Ï£¬»òÕßÔÚÕþ²ßÓëµÀµÂ±ßÔµÓÎ×ߵġ°×߸ÖË¿¡±¼¼Çɵȡ£ÕâЩ¶¼ÓÐÖúÓÚÈÃÒ»¸öÈËÔÚðÏÕÀÖÔ°ÀïÊÕ»ñ³É¾Í¡£µ«Èç¹û½ö½öÈç´Ë£¬³äÆäÁ¿ÎÞ·ÇÊǸ÷Áì·çɧÈýÎåÄêµÄÒ»½é ...
#include "24l01.h" #include "lcd.h" #include "delay.h" #include "spi.h" const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //·¢Ë͵ØÖ· const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //·¢Ë͵ØÖ· //³õÊ&frac14;»¯24L01µÄIO¿Ú void NRF24L01_Init(void) { RCC->APB2ENR|=1<<2; //Ê&sup1;ÄÜPORTA¿ÚʱÖÓ RCC->APB2ENR|=1<<4; //Ê&sup1;ÄÜPORTC¿ÚʱÖÓ GPIOA->CRL&=0XFFF000FF;//PA4Êä³ö GPIOA->CRL|=0X00033300; GPIOA->ODR|=7<<2; //PA2.3.4 Êä³ö1 GPIOC->CRL&=0XFF00FFFF;//PC4Êä³ö PC5Êä³ö GPIOC->CRL|=0X00830000; GPIOC->ODR|=3<<4; //ÉÏÀ­ SPIx_Init(); //³õÊ&frac14;»¯SPI NRF24L01_CE=0; //Ê&sup1;ÄÜ24L01 NRF24L01_CSN=1; //SPIƬѡȡÏû } //&frac14;ì²â24L01ÊÇ·ñ´æÔÚ //·µ»ØÖµ:0£¬³É&sup1;¦;1£¬Ê§°Ü u8 NRF24L01_Check(void) { u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5}; u8 i; SPIx_SetSpeed(SPI_SPEED_8); //spiËÙ¶ÈΪ9Mhz£¨24L01µÄ×î´óSPIʱÖÓΪ10Mhz£© NRF24L01_Write_Buf(WRITE_REG+TX_ADDR,buf,5);//дÈë5¸ö×Ö&frac12;ڵĵØÖ·. NRF24L01_Read_Buf(TX_ADDR,buf,5); //¶Á³öдÈëµÄµØÖ· for(i=0;i<5;i++)if(buf[i]!=0XA5)break; if(i!=5)return 1;//&frac14;ì²â24L01´íÎó return 0; //&frac14;ì²âµ&frac12;24L01 } //SPIд&frac14;Ä´æÆ÷ //reg:Ö¸¶¨&frac14;Ä´æÆ÷µØÖ· //value:дÈëµÄÖµ u8 NRF24L01_Write_Reg(u8 reg,u8 value) { u8 status; NRF24L01_CSN=0; //Ê&sup1;ÄÜSPI´«Êä status =SPIx_ReadWriteByte(reg);//·¢ËÍ&frac14;Ä´æÆ÷ºÅ SPIx_ReadWriteByte(value); //дÈë&frac14;Ä´æÆ÷µÄÖµ NRF24L01_CSN=1; //&frac12;ûÖ&sup1;SPI´«Êä return(status); //·µ»Ø×´Ì¬Öµ } //¶ÁÈ¡SPI&frac14;Ä´æÆ÷Öµ //reg:Òª¶ÁµÄ&frac14;Ä´æÆ÷ u8 NRF24L01_Read_Reg(u8 reg) { u8 reg_val; NRF24L01_CSN = 0; //Ê&sup1;ÄÜSPI´«Êä SPIx_ReadWriteByte(reg); //·¢ËÍ&frac14;Ä´æÆ÷ºÅ reg_val=SPIx_ReadWriteByte(0XFF);//¶ÁÈ¡&frac14;Ä´æÆ÷ÄÚÈÝ NRF24L01_CSN = 1; //&frac12;ûÖ&sup1;SPI´«Êä return(reg_val); //·µ»Ø×´Ì¬Öµ } //ÔÚÖ¸¶¨Î»ÖöÁ³öÖ¸¶¨³¤¶ÈµÄÊý¾Ý //reg:&frac14;Ä´æÆ÷(λÖÃ) //*pBuf:Êý¾ÝÖ¸Õë //len:Êý¾Ý³¤¶È //·µ»ØÖµ,´Ë´Î¶Áµ&frac12;µÄ״̬&frac14;Ä´æÆ÷Öµ u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len) { u8 status,u8_ctr; NRF24L01_CSN = 0; //Ê&sup1;ÄÜSPI´«Êä status=SPIx_ReadWriteByte(reg);//·¢ËÍ&frac14;Ä´æÆ÷Öµ(λÖÃ),²¢¶Áȡ״ֵ̬ for(u8_ctr=0;u8_ctr<len;u8_ctr++)pBuf[u8_ctr]=SPIx_ReadWriteByte(0XFF);//¶Á³öÊý¾Ý NRF24L01_CSN=1; //&sup1;رÕSPI´«Êä return status; //·µ»Ø¶Áµ&frac12;µÄ״ֵ̬ } //ÔÚÖ¸¶¨Î»ÖÃдָ¶¨³¤¶ÈµÄÊý¾Ý //reg:&frac14;Ä´æÆ÷(λÖÃ) //*pBuf:Êý¾ÝÖ¸Õë //len:Êý¾Ý³¤¶È //·µ»ØÖµ,´Ë´Î¶Áµ&frac12;µÄ״̬&frac14;Ä´æÆ÷Öµ u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len) { u8 status,u8_ctr; NRF24L01_CSN = 0; //Ê&sup1;ÄÜSPI´«Êä status = SPIx_ReadWriteByte(reg);//·¢ËÍ&frac14;Ä´æÆ÷Öµ(λÖÃ),²¢¶Áȡ״ֵ̬ for(u8_ctr=0; u8_ctr<len; u8_ctr++)SPIx_ReadWriteByte(*pBuf++); //дÈëÊý¾Ý NRF24L01_CSN = 1; //&sup1;رÕSPI´«Êä return status; //·µ»Ø¶Áµ&frac12;µÄ״ֵ̬ } //Æô¶¯NRF24L01·¢ËÍÒ»´ÎÊý¾Ý //txbuf:´ý·¢ËÍÊý¾ÝÊ×µØÖ· //·µ»ØÖµ:·¢ËÍÍê³É×´¿ö u8 NRF24L01_TxPacket(u8 *txbuf) { u8 sta; SPIx_SetSpeed(SPI_SPEED_8);//spiËÙ¶ÈΪ9Mhz£¨24L01µÄ×î´óSPIʱÖÓΪ10Mhz£© NRF24L01_CE=0; NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);//дÊý¾Ýµ&frac12;TX BUF 32¸ö×Ö&frac12;Ú NRF24L01_CE=1;//Æô¶¯·¢ËÍ while(NRF24L01_IRQ!=0);//µÈ´ý·¢ËÍÍê³É sta=NRF24L01_Read_Reg(STATUS); //¶Áȡ״̬&frac14;Ä´æÆ÷µÄÖµ NRF24L01_Write_Reg(WRITE_REG+STATUS,sta); //Çå³ýTX_DS»òMAX_RTÖжϱêÖ¾ if(sta&MAX_TX)//´ïµ&frac12;×î´óÖØ·¢´ÎÊý { NRF24L01_Write_Reg(FLUSH_TX,0xff);//Çå³ýTX FIFO&frac14;Ä´æÆ÷ return MAX_TX; } if(sta&TX_OK)//·¢ËÍÍê³É { return TX_OK; } return 0xff;//ÆäËûÔ­Òò·¢ËÍʧ°Ü } //Æô¶¯NRF24L01·¢ËÍÒ»´ÎÊý¾Ý //txbuf:´ý·¢ËÍÊý¾ÝÊ×µØÖ· //·µ»ØÖµ:0£¬&frac12;ÓÊÕÍê³É£»ÆäËû£¬´íÎó´úÂë u8 NRF24L01_RxPacket(u8 *rxbuf) { u8 sta; SPIx_SetSpeed(SPI_SPEED_8); //spiËÙ¶ÈΪ9Mhz£¨24L01µÄ×î´óSPIʱÖÓΪ10Mhz£© sta=NRF24L01_Read_Reg(STATUS); //¶Áȡ״̬&frac14;Ä´æÆ÷µÄÖµ NRF24L01_Write_Reg(WRITE_REG+STATUS,sta); //Çå³ýTX_DS»òMAX_RTÖжϱêÖ¾ if(sta&RX_OK)//&frac12;ÓÊÕµ&frac12;Êý¾Ý { NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//¶ÁÈ¡Êý¾Ý NRF24L01_Write_Reg(FLUSH_RX,0xff);//Çå³ýRX FIFO&frac14;Ä´æÆ÷ return 0; } return 1;//ûÊÕµ&frac12;ÈκÎÊý¾Ý } //¸Ãº¯Êý³õÊ&frac14;»¯NRF24L01µ&frac12;RXÄ£Ê&frac12; //ÉèÖÃRXµØÖ·,дRXÊý¾Ý¿í¶È,Ñ¡ÔñRFƵµÀ,²¨ÌØÂʺÍLNA HCURR //µ±CE±ä¸ßºó,&frac14;´&frac12;øÈëRXÄ£Ê&frac12;,²¢¿ÉÒÔ&frac12;ÓÊÕÊý¾ÝÁË void RX_Mode(void) { NRF24L01_CE=0; NRF24L01_Write_Buf(WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//дRX&frac12;ÚµãµØÖ· NRF24L01_Write_Reg(WRITE_REG+EN_AA,0x01); //Ê&sup1;ÄÜͨµÀ0µÄ×Ô¶¯Ó¦´ð NRF24L01_Write_Reg(WRITE_REG+EN_RXADDR,0x01);//Ê&sup1;ÄÜͨµÀ0µÄ&frac12;ÓÊÕµØÖ· NRF24L01_Write_Reg(WRITE_REG+RF_CH,40); //ÉèÖÃRFͨÐÅÆµÂÊ NRF24L01_Write_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//Ñ¡ÔñͨµÀ0µÄÓÐЧÊý¾Ý¿í¶È NRF24L01_Write_Reg(WRITE_REG+RF_SETUP,0x0f);//ÉèÖÃTX·¢Éä²ÎÊý,0dbÔöÒæ,2Mbps,µÍÔëÉùÔöÒæ¿ªÆô NRF24L01_Write_Reg(WRITE_REG+CONFIG, 0x0f);//ÅäÖûù±¾&sup1;¤×÷Ä£Ê&frac12;µÄ²ÎÊý;PWR_UP,EN_CRC,16BIT_CRC,&frac12;ÓÊÕÄ£Ê&frac12; NRF24L01_CE = 1; //CEΪ¸ß,&frac12;øÈë&frac12;ÓÊÕÄ£Ê&frac12; } //¸Ãº¯Êý³õÊ&frac14;»¯NRF24L01µ&frac12;TXÄ£Ê&frac12; //ÉèÖÃTXµØÖ·,дTXÊý¾Ý¿í¶È,ÉèÖÃRX×Ô¶¯Ó¦´ðµÄµØÖ·,Ìî³äTX·¢ËÍÊý¾Ý,Ñ¡ÔñRFƵµÀ,²¨ÌØÂʺÍLNA HCURR //PWR_UP,CRCÊ&sup1;ÄÜ //µ±CE±ä¸ßºó,&frac14;´&frac12;øÈëRXÄ£Ê&frac12;,²¢¿ÉÒÔ&frac12;ÓÊÕÊý¾ÝÁË //CEΪ¸ß´óÓÚ10us,ÔòÆô¶¯·¢ËÍ. void TX_Mode(void) { NRF24L01_CE=0; NRF24L01_Write_Buf(WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//дTX&frac12;ÚµãµØÖ· NRF24L01_Write_Buf(WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH); //ÉèÖÃTX&frac12;ÚµãµØÖ·,Ö÷ҪΪÁËÊ&sup1;ÄÜACK NRF24L01_Write_Reg(WRITE_REG+EN_AA,0x01); //Ê&sup1;ÄÜͨµÀ0µÄ×Ô¶¯Ó¦´ð NRF24L01_Write_Reg(WRITE_REG+EN_RXADDR,0x01); //Ê&sup1;ÄÜͨµÀ0µÄ&frac12;ÓÊÕµØÖ· NRF24L01_Write_Reg(WRITE_REG+SETUP_RETR,0x1a);//ÉèÖÃ×Ô¶¯ÖØ·¢&frac14;ä¸ôʱ&frac14;ä:500us + 86us;×î´ó×Ô¶¯ÖØ·¢´ÎÊý:10´Î NRF24L01_Write_Reg(WRITE_REG+RF_CH,40); //ÉèÖÃRFͨµÀΪ40 NRF24L01_Write_Reg(WRITE_REG+RF_SETUP,0x0f); //ÉèÖÃTX·¢Éä²ÎÊý,0dbÔöÒæ,2Mbps,µÍÔëÉùÔöÒæ¿ªÆô NRF24L01_Write_Reg(WRITE_REG+CONFIG,0x0e); //ÅäÖûù±¾&sup1;¤×÷Ä£Ê&frac12;µÄ²ÎÊý;PWR_UP,EN_CRC,16BIT_CRC,&frac12;ÓÊÕÄ£Ê&frac12;,¿ªÆôËùÓÐÖÐ¶Ï NRF24L01_CE=1;//CEΪ¸ß,10usºóÆô¶¯·¢ËÍ }
最新发布
07-14
#include "24l01.h" #include "lcd.h" #include "delay.h" #include "spi.h" ////////////////////////////////////////////////////////////////////////////////// //±¾³ÌÐòÖ»&sup1;©Ñ§Ï°Ê&sup1;Óã¬Î´¾­×÷ÕßÐí¿É£¬²»µÃÓÃÓÚÆäËüÈκÎÓÃ; //Mini STM32¿ª·¢°å //NRF24L01 Çý¶¯º¯Êý //ÕýµãÔ­×Ó@ALIENTEK //&frac14;&frac14;ÊõÂÛ̳:www.openedv.com //ÐÞ¸ÄÈÕÆÚ:2010/6/16 //°æ±¾£ºV1.0 //°æÈ¨ËùÓУ¬µÁ°æ±Ø¾¿¡£ //Copyright(C) ÕýµãÔ­×Ó 2009-2019 //All rights reserved ////////////////////////////////////////////////////////////////////////////////// const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //·¢Ë͵ØÖ· const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //·¢Ë͵ØÖ· //³õÊ&frac14;»¯24L01µÄIO¿Ú void NRF24L01_Init(void) { RCC->APB2ENR|=1<<2; //Ê&sup1;ÄÜPORTA¿ÚʱÖÓ RCC->APB2ENR|=1<<4; //Ê&sup1;ÄÜPORTC¿ÚʱÖÓ GPIOA->CRL&=0XFFF000FF;//PA4Êä³ö GPIOA->CRL|=0X00033300; GPIOA->ODR|=7<<2; //PA2.3.4 Êä³ö1 GPIOC->CRL&=0XFF00FFFF;//PC4Êä³ö PC5Êä³ö GPIOC->CRL|=0X00830000; GPIOC->ODR|=3<<4; //ÉÏÀ­ SPIx_Init(); //³õÊ&frac14;»¯SPI NRF24L01_CE=0; //Ê&sup1;ÄÜ24L01 NRF24L01_CSN=1; //SPIƬѡȡÏû } //&frac14;ì²â24L01ÊÇ·ñ´æÔÚ //·µ»ØÖµ:0£¬³É&sup1;¦;1£¬Ê§°Ü u8 NRF24L01_Check(void) { u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5}; u8 i; SPIx_SetSpeed(SPI_SPEED_8); //spiËÙ¶ÈΪ9Mhz£¨24L01µÄ×î´óSPIʱÖÓΪ10Mhz£© NRF24L01_Write_Buf(WRITE_REG+TX_ADDR,buf,5);//дÈë5¸ö×Ö&frac12;ڵĵØÖ·. NRF24L01_Read_Buf(TX_ADDR,buf,5); //¶Á³öдÈëµÄµØÖ· for(i=0;i<5;i++)if(buf[i]!=0XA5)break; if(i!=5)return 1;//&frac14;ì²â24L01´íÎó return 0; //&frac14;ì²âµ&frac12;24L01 } //SPIд&frac14;Ä´æÆ÷ //reg:Ö¸¶¨&frac14;Ä´æÆ÷µØÖ· //value:дÈëµÄÖµ u8 NRF24L01_Write_Reg(u8 reg,u8 value) { u8 status; NRF24L01_CSN=0; //Ê&sup1;ÄÜSPI´«Êä status =SPIx_ReadWriteByte(reg);//·¢ËÍ&frac14;Ä´æÆ÷ºÅ SPIx_ReadWriteByte(value); //дÈë&frac14;Ä´æÆ÷µÄÖµ NRF24L01_CSN=1; //&frac12;ûÖ&sup1;SPI´«Êä return(status); //·µ»Ø×´Ì¬Öµ } //¶ÁÈ¡SPI&frac14;Ä´æÆ÷Öµ //reg:Òª¶ÁµÄ&frac14;Ä´æÆ÷ u8 NRF24L01_Read_Reg(u8 reg) { u8 reg_val; NRF24L01_CSN = 0; //Ê&sup1;ÄÜSPI´«Êä SPIx_ReadWriteByte(reg); //·¢ËÍ&frac14;Ä´æÆ÷ºÅ reg_val=SPIx_ReadWriteByte(0XFF);//¶ÁÈ¡&frac14;Ä´æÆ÷ÄÚÈÝ NRF24L01_CSN = 1; //&frac12;ûÖ&sup1;SPI´«Êä return(reg_val); //·µ»Ø×´Ì¬Öµ } //ÔÚÖ¸¶¨Î»ÖöÁ³öÖ¸¶¨³¤¶ÈµÄÊý¾Ý //reg:&frac14;Ä´æÆ÷(λÖÃ) //*pBuf:Êý¾ÝÖ¸Õë //len:Êý¾Ý³¤¶È //·µ»ØÖµ,´Ë´Î¶Áµ&frac12;µÄ״̬&frac14;Ä´æÆ÷Öµ u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len) { u8 status,u8_ctr; NRF24L01_CSN = 0; //Ê&sup1;ÄÜSPI´«Êä status=SPIx_ReadWriteByte(reg);//·¢ËÍ&frac14;Ä´æÆ÷Öµ(λÖÃ),²¢¶Áȡ״ֵ̬ for(u8_ctr=0;u8_ctr<len;u8_ctr++)pBuf[u8_ctr]=SPIx_ReadWriteByte(0XFF);//¶Á³öÊý¾Ý NRF24L01_CSN=1; //&sup1;رÕSPI´«Êä return status; //·µ»Ø¶Áµ&frac12;µÄ״ֵ̬ } //ÔÚÖ¸¶¨Î»ÖÃдָ¶¨³¤¶ÈµÄÊý¾Ý //reg:&frac14;Ä´æÆ÷(λÖÃ) //*pBuf:Êý¾ÝÖ¸Õë //len:Êý¾Ý³¤¶È //·µ»ØÖµ,´Ë´Î¶Áµ&frac12;µÄ״̬&frac14;Ä´æÆ÷Öµ u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len) { u8 status,u8_ctr; NRF24L01_CSN = 0; //Ê&sup1;ÄÜSPI´«Êä status = SPIx_ReadWriteByte(reg);//·¢ËÍ&frac14;Ä´æÆ÷Öµ(λÖÃ),²¢¶Áȡ״ֵ̬ for(u8_ctr=0; u8_ctr<len; u8_ctr++)SPIx_ReadWriteByte(*pBuf++); //дÈëÊý¾Ý NRF24L01_CSN = 1; //&sup1;رÕSPI´«Êä return status; //·µ»Ø¶Áµ&frac12;µÄ״ֵ̬ } //Æô¶¯NRF24L01·¢ËÍÒ»´ÎÊý¾Ý //txbuf:´ý·¢ËÍÊý¾ÝÊ×µØÖ· //·µ»ØÖµ:·¢ËÍÍê³É×´¿ö u8 NRF24L01_TxPacket(u8 *txbuf) { u8 sta; SPIx_SetSpeed(SPI_SPEED_8);//spiËÙ¶ÈΪ9Mhz£¨24L01µÄ×î´óSPIʱÖÓΪ10Mhz£© NRF24L01_CE=0; NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);//дÊý¾Ýµ&frac12;TX BUF 32¸ö×Ö&frac12;Ú NRF24L01_CE=1;//Æô¶¯·¢ËÍ while(NRF24L01_IRQ!=0);//µÈ´ý·¢ËÍÍê³É sta=NRF24L01_Read_Reg(STATUS); //¶Áȡ״̬&frac14;Ä´æÆ÷µÄÖµ NRF24L01_Write_Reg(WRITE_REG+STATUS,sta); //Çå³ýTX_DS»òMAX_RTÖжϱêÖ¾ if(sta&MAX_TX)//´ïµ&frac12;×î´óÖØ·¢´ÎÊý { NRF24L01_Write_Reg(FLUSH_TX,0xff);//Çå³ýTX FIFO&frac14;Ä´æÆ÷ return MAX_TX; } if(sta&TX_OK)//·¢ËÍÍê³É { return TX_OK; } return 0xff;//ÆäËûÔ­Òò·¢ËÍʧ°Ü } //Æô¶¯NRF24L01·¢ËÍÒ»´ÎÊý¾Ý //txbuf:´ý·¢ËÍÊý¾ÝÊ×µØÖ· //·µ»ØÖµ:0£¬&frac12;ÓÊÕÍê³É£»ÆäËû£¬´íÎó´úÂë u8 NRF24L01_RxPacket(u8 *rxbuf) { u8 sta; SPIx_SetSpeed(SPI_SPEED_8); //spiËÙ¶ÈΪ9Mhz£¨24L01µÄ×î´óSPIʱÖÓΪ10Mhz£© sta=NRF24L01_Read_Reg(STATUS); //¶Áȡ״̬&frac14;Ä´æÆ÷µÄÖµ NRF24L01_Write_Reg(WRITE_REG+STATUS,sta); //Çå³ýTX_DS»òMAX_RTÖжϱêÖ¾ if(sta&RX_OK)//&frac12;ÓÊÕµ&frac12;Êý¾Ý { NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//¶ÁÈ¡Êý¾Ý NRF24L01_Write_Reg(FLUSH_RX,0xff);//Çå³ýRX FIFO&frac14;Ä´æÆ÷ return 0; } return 1;//ûÊÕµ&frac12;ÈκÎÊý¾Ý } //¸Ãº¯Êý³õÊ&frac14;»¯NRF24L01µ&frac12;RXÄ£Ê&frac12; //ÉèÖÃRXµØÖ·,дRXÊý¾Ý¿í¶È,Ñ¡ÔñRFƵµÀ,²¨ÌØÂʺÍLNA HCURR //µ±CE±ä¸ßºó,&frac14;´&frac12;øÈëRXÄ£Ê&frac12;,²¢¿ÉÒÔ&frac12;ÓÊÕÊý¾ÝÁË void RX_Mode(void) { NRF24L01_CE=0; NRF24L01_Write_Buf(WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//дRX&frac12;ÚµãµØÖ· NRF24L01_Write_Reg(WRITE_REG+EN_AA,0x01); //Ê&sup1;ÄÜͨµÀ0µÄ×Ô¶¯Ó¦´ð NRF24L01_Write_Reg(WRITE_REG+EN_RXADDR,0x01);//Ê&sup1;ÄÜͨµÀ0µÄ&frac12;ÓÊÕµØÖ· NRF24L01_Write_Reg(WRITE_REG+RF_CH,40); //ÉèÖÃRFͨÐÅÆµÂÊ NRF24L01_Write_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//Ñ¡ÔñͨµÀ0µÄÓÐЧÊý¾Ý¿í¶È NRF24L01_Write_Reg(WRITE_REG+RF_SETUP,0x0f);//ÉèÖÃTX·¢Éä²ÎÊý,0dbÔöÒæ,2Mbps,µÍÔëÉùÔöÒæ¿ªÆô NRF24L01_Write_Reg(WRITE_REG+CONFIG, 0x0f);//ÅäÖûù±¾&sup1;¤×÷Ä£Ê&frac12;µÄ²ÎÊý;PWR_UP,EN_CRC,16BIT_CRC,&frac12;ÓÊÕÄ£Ê&frac12; NRF24L01_CE = 1; //CEΪ¸ß,&frac12;øÈë&frac12;ÓÊÕÄ£Ê&frac12; } //¸Ãº¯Êý³õÊ&frac14;»¯NRF24L01µ&frac12;TXÄ£Ê&frac12; //ÉèÖÃTXµØÖ·,дTXÊý¾Ý¿í¶È,ÉèÖÃRX×Ô¶¯Ó¦´ðµÄµØÖ·,Ìî³äTX·¢ËÍÊý¾Ý,Ñ¡ÔñRFƵµÀ,²¨ÌØÂʺÍLNA HCURR //PWR_UP,CRCÊ&sup1;ÄÜ //µ±CE±ä¸ßºó,&frac14;´&frac12;øÈëRXÄ£Ê&frac12;,²¢¿ÉÒÔ&frac12;ÓÊÕÊý¾ÝÁË //CEΪ¸ß´óÓÚ10us,ÔòÆô¶¯·¢ËÍ. void TX_Mode(void) { NRF24L01_CE=0; NRF24L01_Write_Buf(WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//дTX&frac12;ÚµãµØÖ· NRF24L01_Write_Buf(WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH); //ÉèÖÃTX&frac12;ÚµãµØÖ·,Ö÷ҪΪÁËÊ&sup1;ÄÜACK NRF24L01_Write_Reg(WRITE_REG+EN_AA,0x01); //Ê&sup1;ÄÜͨµÀ0µÄ×Ô¶¯Ó¦´ð NRF24L01_Write_Reg(WRITE_REG+EN_RXADDR,0x01); //Ê&sup1;ÄÜͨµÀ0µÄ&frac12;ÓÊÕµØÖ· NRF24L01_Write_Reg(WRITE_REG+SETUP_RETR,0x1a);//ÉèÖÃ×Ô¶¯ÖØ·¢&frac14;ä¸ôʱ&frac14;ä:500us + 86us;×î´ó×Ô¶¯ÖØ·¢´ÎÊý:10´Î NRF24L01_Write_Reg(WRITE_REG+RF_CH,40); //ÉèÖÃRFͨµÀΪ40 NRF24L01_Write_Reg(WRITE_REG+RF_SETUP,0x0f); //ÉèÖÃTX·¢Éä²ÎÊý,0dbÔöÒæ,2Mbps,µÍÔëÉùÔöÒæ¿ªÆô NRF24L01_Write_Reg(WRITE_REG+CONFIG,0x0e); //ÅäÖûù±¾&sup1;¤×÷Ä£Ê&frac12;µÄ²ÎÊý;PWR_UP,EN_CRC,16BIT_CRC,&frac12;ÓÊÕÄ£Ê&frac12;,¿ªÆôËùÓÐÖÐ¶Ï NRF24L01_CE=1;//CEΪ¸ß,10usºóÆô¶¯·¢ËÍ } 请以该驱动代码为例编写
07-14
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值