欢迎光临~啄木鸟电子科技

软件设计

软件:WI 无线 配对 过程

要解决的问题:
配对不成功:是逻辑问题,先完成学习配对,再对设备操作;
避开重复扫码:
配对过程 与 实际操作过程 其实是 2 个不同过程,所以,有必要将其区分成 2 个部份;


void Wi_433(void)
{
	if(!KEY)  // 配对
	{
		Delay_Nms(30);
		if(!KEY)
		{
			Wi_Key_Stateup(); 		 // 433 无线对码 地址码; 
			Wi_Remote(); 				 
        }
        
    }
    else   // 配对完后的 正常操作;
    {
        Wi_Remoteprocessing();
        Wi_Remote();                         
    }
		
}
/**********************************************************************
* 函数: Wi_Key_Stateup(void)
* 功能: 上电对码,将无线 地址码 存在 指定 地址里;
* 输入: 无
* 输出: 无
用 2 次扫码码 来锁定 解码的正确性
***********************************************************************/
void Wi_Key_Stateup(void)
{
	u8 data_10 = 0;
	u8 data_11 = 0; 
	u8 data_12 = 0;
	
	u8 data_20 = 0;
	u8 data_21 = 0; 
	u8 data_22 = 0;
	
	if(!KEY)
	{
		Delay_Nms(30);
		if(!KEY)
		{
			if(!MP3_BUSY)  // 如有播放,先停止;  
			{
				Music_Stop();
				Delay_Nms(200);
			}			
			
			//  地址码 清0; 
			address_0 = 0; 
			address_1 = 0; 
			address_2 = 0;		
			
			do{	
				//	接收码 清0;								
				receive_data[0] = 0x00;	 // 清0 : 用这两个 初始变量,把遥控器对码 锁住,不改变,就不退出来;
				receive_data[1] = 0x00;
				receive_data[2] = 0x00;
				
				data_10 = 0;
				data_11 = 0; 
				data_12 = 0;
				
				// 第 1 次 扫码 			
	            while((receive_data[0]==0x00)||(receive_data[1]== 0x00)||(receive_data[2]== 0x00) ) // 数据为 真,进入循环;为假,退出;
				{
					
					Wi_Remoteprocessing(); // 无线 解码 过程
					LED = 0; 	// 指示灯 常亮;     					           
				}
				LED_Flash(2); 
				data_10 = receive_data[0];
				data_11 = receive_data[1]; 
				data_12 = receive_data[2]; 
				
				// 接收 数据 清 0; 
				receive_data[0] = 0;
				receive_data[1] = 0;
				receive_data[1] = 0;
				
				data_20 = 0;
				data_21 = 0; 
				data_22 = 0; 	
				
				// 第 2 次 扫码			
				while((receive_data[0]==0x00)||(receive_data[1]== 0x00)||(receive_data[2]== 0x00) ) // 数据为 真,进入循环;为假,退出;
				{
					
					Wi_Remoteprocessing(); // 无线 解码 过程
					LED = 0; 	// 指示灯 常亮;     					           
				}
				LED_Flash(2); 
				data_20 = receive_data[0];
				data_21 = receive_data[1]; 
				data_22 = receive_data[2]; 

			}while((data_10 != data_20) & (data_11 != data_21) & (data_12 != data_22));
			
			
			address_0 = receive_data[0]; // 读出 无线遥控器 地址 0
			Delay_Nms(30);
			address_1 = receive_data[1]; // 读出 无线遥控器 地址 1
			Delay_Nms(30);
			address_2 = receive_data[2]; // 读出 无线遥控器 地址 1
			Delay_Nms(30);
			
			eeprom_write(0x05, receive_data[0]); // 写入存储器; 4005 地址;
			Delay_Nms(30);				
			eeprom_write(0x06, receive_data[1]); // 写入存储器; 4006 地址;
			Delay_Nms(30);					
			eeprom_write(0x07, receive_data[2]); // 写入存储器; 4007 地址;	
			Delay_Nms(30);
			
			LED = 1; // 指示灯 灭结束学习过程;			
		} 	
	}		
}


联系我们

联系人:客服在线

手机:全工:13903011251

电话:李R:13530006400

邮箱:729986191@qq.com

地址: GUANGDONG PROVINCE

用手机扫描二维码关闭
二维码