⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这是基于AVR的单片机程序。用于无线通信。
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "WIRELESS.h"
//#include "EINT0.h"

uint8 TxRxBuf[32];
    
int main(void)
{
   uint32 i,j; 
   uint32 led0_count=0;
   uint32 led1_count=0; 
   
   PINSEL0 = 0x00000000;
   PINSEL1 = 0x00000000;//全配置为GPIO
   
   IO0DIR = 0x22880000;//输出:CE,CS,PWR_UP,CLK1 输入:KEY,DR1,DATA 
   IO2DIR = 0x30000000;//输出:LED0,LED1 
   
   
   Config2401(); // 必须执行的配置操作 
   Delay100();
   
   TxRxBuf[0] = 1; 
   TxRxBuf[DATA1_W/8 - 1] = 1; // 初始化发送数据(测试)
    
   SetTxMode(); 			   // 设置为发送模式 
   
   nRF2401_TxPacket(TxRxBuf);   // 发送测试数据 
   
   IO2CLR = LED0; 
   IO2CLR = LED1; 					// 测试LED0 和 LED1 
   
   Delay(500);                     // 延时使LED灯点亮 
   
   IO2SET = LED0; 
   IO2SET = LED1;			        // 使LED灯熄灭
    
   TxRxBuf[0] = 0x0; 
   TxRxBuf[DATA1_W/8 - 1] = 0x0;
   
   
   SetRxMode(); 				// 设置RF2401 为接收模式
   
   
   while(1) 
     {        
        for(i=0;i<30;i++)for(j=0;j<30;j++);  
         
   			if (nRF2401_RxPacket(TxRxBuf)==1) //返回1 表明有数据包接收到 
   				{   
   				 
   				  if (TxRxBuf[0]==1) 
   				      { 
   				        
   				         led0_count=15; 
   				       }
    				if (TxRxBuf[DATA1_W/8 - 1]==1) 
    					{ 
    					  
    					  led1_count=15; 
    					}                    
    			  
    			} 
   		 TxRxBuf[0]=0; 
   	     TxRxBuf[DATA1_W/8 - 1]=0;
   	     
   	     
		
		if ((IO0PIN&KEY1)==0)
		{
		    TxRxBuf[0] = 1;
			TxRxBuf[DATA1_W/8 - 1] = 1;
			
			led0_count=15;
			led1_count=15;
			
		}
		if (TxRxBuf[0]==1 || TxRxBuf[DATA1_W/8 - 1]==1)
		{
			SetTxMode(); 				//设置为发射模式
			nRF2401_TxPacket(TxRxBuf); 	//发送数据
			SetRxMode();
		}
		TxRxBuf[0]=0;
		TxRxBuf[DATA1_W/8 - 1]=0;


   	     //LED显示延时 
   	     if (led0_count>0) 
   	        { 
   	           led0_count--; 
   	           IO2CLR = LED0; 
   	        }
   	      else IO2SET = LED0;
   	      
   	       if (led1_count>0) 
   	          { 
   	             led1_count--;
   	             IO2SET = LED1; 
   	    		 //IO2CLR = LED1;
   	          } 
   	     	else IO2CLR = LED1;
   	
   	     	 
   	  }//end_while(1); 
  }
     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -