基于EIA-232,的ModBus-ASCII协议,校验方式Lrc-8


#include "stm32f10x.h"

  
u8 Rcv_Buffer[131]={0};			  
u8 Send_Buffer[131]={0};
u16 Rcv_Index=0;
u16 Send_Index=0;
u8 Comu_Busy=0;
u8	Sendcount=0;	
u8	Recivecount=0;
u16 KAIGUANLIANG=0;
extern u16 DLBJ,dlBJ,DWBJ,BJBZ,BJBZ1,BJBZ2,BJBZ3,BJBZ4,BJBZ5;         //¶Ï·±¨¾¯    

extern u16 DL1,DL2,DL3,DL4,DL5,DL6,DL7,DL8,DL9,DL10,DL11,DL12;
u16 DL=0;
u16 SendFlag=0;
extern u16 Rcv_For_User[80];//Õâ¸öÊý×éÊÇÒ»¸ö¶ÔÍâ½Ó¿Ú£¬Ö÷³ÌÐòÖдÓÕâ¸öÊý×éÖÐÈ¡³ö¿ÉÓõÄÊý¾Ý¡£µÚÒ»¸öÔªËØÖ»ÓÐ0ºÍ1Á½¸ö¿ÉÄÜÖµ£¬ÓÃÓÚ±íʾÊý×éÄÚÈÝÊÇ·ñÒѾ­¸úйý¡£
extern u16 Send_For_User[80];//Õâ¸öÊý×éÊÇÒ»¸ö¶ÔÍâ½Ó¿Ú£¬Ö÷³ÌÐò½«Òª·¢Ë͵ÄÊý¾Ý·ÅÖÃÔÚÕâ¸öÊý×éÖС£µÚÒ»¸öÔªËØÖ»ÓÐ0ºÍ1Á½¸ö¿ÉÄÜÖµ£¬ÓÃÓÚ±íʾÊý×éÄÚÈÝÊÇ·ñÒѾ­¸úйý¡£
extern u16 XH1;
extern u16 I1_1,IC_1,LIM_1,D_1,C_1;    //ÄǼ¸Â·µÄÄ£ÄâÖµ
extern u16 I1_2,IC_2,LIM_2,D_2,C_2;
extern u16 I1_3,IC_3,LIM_3,D_3,C_3;
extern u16 I1_4,IC_4,LIM_4,D_4,C_4; 
extern u16 I1_5,IC_5,LIM_5,D_5,C_5; 
extern u16 I1_6,IC_6,LIM_6,D_6,C_6; 
extern u16 I1_7,IC_7,LIM_7,D_7,C_7; 
extern u16 I1_8,IC_8,LIM_8,D_8,C_8; 
extern u8 LINEAR1,LINEAR2,LINEAR3,LINEAR4;
extern u16 YALI,XIEHE,ZUOYI;//ѹÁ¦¿ª¹Ø£¬Ð¶ºÉ¿ª¹Ø£¬×ùÒοª¹Ø
extern u16 T1_1,T1_2,T2_1,T2_2,T3_1,T3_2,T4_1,T4_2;  
extern u32 I_FEEDBACK1,I_FEEDBACK2,I_FEEDBACK3,I_FEEDBACK4,I_FEEDBACK5,I_FEEDBACK6,I_FEEDBACK7,I_FEEDBACK8;
extern u32 I_FEEDBACK9,I_FEEDBACK10,I_FEEDBACK11,I_FEEDBACK12;		
extern u32 V_DONGBI, V_ZONG, V_DONGBI,V_FANDOU,V_FUZHU1,V_FUZHU2;
#define YX1 GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11);
//#define YX2 GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_11);
//#define YX3 GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_12);
//#define YX4 GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_0);
//#define YL  GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_4);
//#define ZW  GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3);
//#define XH  GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);
extern u8 YX1,YX2,YX3,YX4,YL,ZW,XH;
void MODBUS_Rcv(void);  //£¨½ÓÊÜ£©
void MODBUS_Send(void); //£¨·¢ËÍ£©
void LRC_Cal(u8 *buffer1,u8 len,u8 *buffer2);//LRCУÑéÂë
void response_handle(void);                  //µ±½ÓÊÜÍêÖ÷»úµÄÐÅÏ¢ºó£¬½øÐд¦Àí
void Respond_Read(void);//ÉèÖÃģʽÏ£¬ÎҵĻØÓ¦
void Respond_Write(void);                         //¼à¿ØÉèÖÃģʽÏ£¬ÎҵĻØÓ¦
void Sendvalue_Init(void);                       //·¢ËÍÖµµÄ³õʼ»¯
void HexToAscii(u8 *val);                    //Ê®Áù½øÖÆתΪASCIIÂë
u8 AsciiToHex(u8 val);                       //ASCIIÂëת»»Îª16½øÖÆ 
extern u16 DBJ(u16 n);                             //¶Ï·±¨¾¯¼ì²â
extern u16 dBJ(u16 n);                             //¶Ì·±¨¾¯¼ì²â
extern u16 DDBJ(u16 n);                            //µçλÆ÷¶Ï·±¨¾¯¼ì²â¡£ 
extern u16 XBJ(u16 n);                             //ϵͳ±¨¾¯¹ýѹ¼ì²â 
extern u16 XBJ1(u16 n);                            //ϵͳ±¨¾¯Ç·Ñ¹¼ì²â
extern u16 get_temperature(void);	          //ζȼì²â 
 /* º¯Êý¹¦ÄÜ£ºÓÃÓÚMODBUSeÐÅÏ¢½ÓÊÕ
 	º¯ÊýÊäÈ룺ÎÞ¡£														    
	º¯ÊýÊä³ö£ºÎÞ¡£                                                                                      */
  void MODBUS_Rcv(void)
  {
  	u8 Rcv_Data;
	if(Comu_Busy==0)//Èç¹û±¾»ú²»Ã¦£¬¿ÉÒÔ½ÓÊÕеÄÖ¡
	{
		Rcv_Data = USART_ReceiveData(USART3);                  //´ó¸ç£¬ÎÒÃÇÄǶùÊÇ3
		if(Rcv_Data == ':')//Ö¡Æðʼ±êÖ¾,±ê־еÄÖ¡¿ªÊ¼
		{
			Rcv_Index = 0;//½«Ö¡¶¨Î»µ½Rcv_Buffer´æ·ÅµÚÒ»¸öÓÐЧ×Ö½ÚµÄλ//ÓпÉÄÜÒª¸ÄΪ0£¨Ã²ËÆÓÖ²»ÓøÄÁË£©£¨Æäʵ»¹ÊǸÄΪ0ÁË£©
			Rcv_Buffer[Rcv_Index] = ':';
			Rcv_Index++;//ÒƵ½ÏÂÒ»¸öλÖÃ
		  Recivecount++;//½ÓÊÕµÄÓÐЧ×Ö½ÚÊý¼ÓÒ»
		}
		else if(Rcv_Data == '\n')//Èç¹ûÊÇ0x13£¬×îºóÒ»¸öÊý      //ԭΪ'\r'
		{
			Rcv_Buffer[Rcv_Index] = Rcv_Data;//´æ·Å½ÓÊÕµ½µÄ×Ö½Ú
			Recivecount++;//½ÓÊÕµÄÓÐЧ×Ö½ÚÊý¼ÓÒ»
			if(Rcv_Index>=1&&Rcv_Buffer[Rcv_Index-1]=='\r')//±êÖ¾Ö¡½áÊø ԭΪ'*'
			{
				Comu_Busy=1;//¿ªÊ¼´¦Àí»Ø¸´µÄÖ¡ÐÅÏ¢£¬½øÈëæ״̬
				response_handle();		//´¦ÀíÊý¾Ý
				Recivecount=0;//Êý×éÇåÁã
				Comu_Busy=0;//»Ö¸´¿ÕÏÐ״̬
			}		 
		}
		else//Èç¹ûÊDZðµÄ×Ö·û(Èç¹û½ÓÊÕµ½µÄÊÇÒ»¸öÊý×é)
		{
			Rcv_Buffer[Rcv_Index] = Rcv_Data;//´æ·Å½ÓÊÕµ½µÄ×Ö½Ú
			Rcv_Index++;//ÒƵ½ÏÂÒ»¸öλÖÃ
			Recivecount++;//½ÓÊÕµÄÓÐЧ×Ö½ÚÊý¼ÓÒ»					
		}	
	}		
  }

 /* º¯Êý¹¦ÄÜ£ºÓÃÓÚModbusÐÅÏ¢·¢ËÍ
 	º¯ÊýÊäÈ룺ÎÞ¡£														    
	º¯ÊýÊä³ö£ºÎÞ¡£																	   */
  void MODBUS_Send(void)	
 {
		u8 Send_Data;
		Send_Data = Send_Buffer[Send_Index];	           //
  	USART_SendData(USART3,Send_Data);                //ÒòΪÎÒÃÇÓõÄÊÇ3
		Send_Index++;		       
	if(Send_Index>=Sendcount)//Èç¹û·¢ËÍÍêÖ¸¶¨µÄÊý¾ÝÒÔºó
	{
		USART_ITConfig(USART3, USART_IT_TC, DISABLE);//¹Ø±ÕÊý¾Ý·¢ËÍÖжÏ
		Send_For_User[0]=0;//±íʾÊý¾ÝÒѾ­Ê¹ÓÃÍ꣬´ý¸úÐÂ
	}
			
 }


 /* º¯Êý¹¦ÄÜ£ºASCII¼ÆËãÓú¯Êý
 	º¯ÊýÊäÈ룺buffer1ÊÇÒª½øÐÐLRC¼ÆËãµÄÐÅÏ¢Ê×µØÖ·£¬lenÊÇÐÅÏ¢ÖÐ×Ö½ÚÊý£¬buffer2ÊǽÓÊÕLRCУÑé½á¹ûµÄ´æ´¢¿Õ¼äÊ×µØÖ·														    
	º¯ÊýÊä³ö£ºÎÞ                                                                                      */
 

void LRC_Cal(u8 * buffer1, u8 len, u8 * buffer2)    //??????16???ASCII?
{
	u8 i = 0;
u8 temp = 0;
u8 buffer[80] = { 0 };

   while (i <(len/2))
	{
		buffer[i] = AsciiToHex(*(buffer1 + 2 * i))*16  +( AsciiToHex(*(buffer1 + 2 * i + 1)));
		temp += buffer[i];
		i++;
	}
	
	temp = temp % 0X100;
	temp =255-temp;
	temp= temp + 1;
	*buffer2 = temp/16;
	*(buffer2 + 1) = (temp % 16);
	HexToAscii(buffer2);
	HexToAscii(buffer2 + 1);

	
}



void HexToAscii(u8 *val)   //Ê®Áù½øÖÆת»»ÎªASCIIÂë
{
	if(*val>9)
		*val += 'A'-10;//ת»»³É×ÖĸµÄasciiÂë
	else
		*val += '0';//ת»»³ÉÊý×ÖµÄasciiÂë
	return;
}


u8 AsciiToHex(u8 val)      //ASCIIת»¯Îª16½øÖÆ
{
	if(val>='0'&&val<='9')   
	{
	 	val -= '0';
		return val;
	}
	if(val>='A'&&val<='F')
	{
		val -= 'A'-10;
		return val;
	}
	return val;
}
 /* º¯Êý¹¦ÄÜ£º¶Ô½ÓÊյĻظ´ÐÅÏ¢½øÐд¦Àí,´Ó»Ø¸´ÐÅÏ¢»ñµÃÐèÒªµÄÊý¾Ý
 	º¯ÊýÊäÈ룺ÎÞ¡£														    
	º¯ÊýÊä³ö£ºÎÞ¡£                                                                                      */
void response_handle(void)	//»Ø¸´µÄÊÇRDµÄÃüÁWDµÄÃüÁîûÓÐʵ¼ÊÊý¾Ý	  
 {
 	u8 CalKey[2]={0};//¼ÆËã³öÀ´µÄУÑéÖµ
	u8 i=0;
	u16 cnt=0;
	u16 dizhi=0;
	LRC_Cal(&Rcv_Buffer[1],Recivecount-5, CalKey);//×îºóËÄλÊÇLRCºÍ
	if(CalKey[0]==Rcv_Buffer[Recivecount-4]&& CalKey[1]==Rcv_Buffer[Recivecount-3]//¼ÆËã³öµÄУÑéÓë½ÓÊÕµ½µÄLRC±È½ÏÕýºÃÔÚµ¹ÊýµÚ3¸ö
		&&Rcv_Buffer[1]==(0 + '0')&&Rcv_Buffer[2]==(1 + '0'))//Èç¹ûУÑéÕýÈ·,ͬʱµ¥ÔªºÅÕýÈ·
	{
     dizhi=AsciiToHex(Rcv_Buffer[5])*16*16*16+AsciiToHex(Rcv_Buffer[6])*16*16
										+AsciiToHex(Rcv_Buffer[7])*16+AsciiToHex(Rcv_Buffer[8]);
	   cnt=AsciiToHex(Rcv_Buffer[9])*16*16*16+AsciiToHex(Rcv_Buffer[10])*16*16
										+AsciiToHex(Rcv_Buffer[11])*16+AsciiToHex(Rcv_Buffer[12]);
			if(Rcv_Buffer[3]==(1+'0') && Rcv_Buffer[4]==(0+'0'))//ÊǸøÎÒдÊý¾Ý
			{
				                                   //Ö÷»ú¸øÎÒÊý¾Ý£¬ÎÒÏìÓ¦Ëû
				if(dizhi==1000)//×ÜÌåÉèÖ㬴«µ¥ÏßÐÔÒÔ¼°Ë«ÏßÐÔ
				{
					Rcv_For_User[1]=AsciiToHex(Rcv_Buffer[15])*16*16*16+AsciiToHex(Rcv_Buffer[16])*16*16
										+AsciiToHex(Rcv_Buffer[17])*16+AsciiToHex(Rcv_Buffer[18+i*4]);
				}
				 if(dizhi>=1100 && dizhi<=1109)
				{
					for(i=0;i
   
   
    
    =1200 && dizhi<=1209)
				{
					for(i=0;i
    
    
     
     =1300 && dizhi<=1309)
				{
					for(i=0;i
     
     
      
      =1400 && dizhi<=1409)
				{
					for(i=0;i
      
      
       
       =2011 && dizhi<=2012)
				{
					for(i=0;i
       
       
         =2021 && dizhi<=2022) { for(i=0;i 
        
          =2031 && dizhi <=2032) { for(i=0;i 
         
           =2041 && dizhi<=2042) { for(i=0;i 
          
            =1100 && dizhi<=1109) { temp = Send_For_User[dizhi-1099+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } else if(dizhi>=1200 && dizhi<=1209) { temp = Send_For_User[dizhi-1189+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } else if(dizhi>=1300 && dizhi<=1309) { temp = Send_For_User[dizhi-1279+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } else if(dizhi>=1400 && dizhi<=1409) { temp = Send_For_User[dizhi-1369+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } else if(dizhi>=2011 && dizhi<=2012) { temp = Send_For_User[dizhi-1970+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } else if(dizhi>=2021 && dizhi<=2022) { temp = Send_For_User[dizhi-1978+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } else if(dizhi>=2031 && dizhi<=2032) { temp = Send_For_User[dizhi-1986+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } else if(dizhi>=2041 && dizhi<=2042) { temp = Send_For_User[dizhi-1994+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } else if(dizhi>=3000&& dizhi<=3019) { temp = Send_For_User[dizhi-2951+i]; Send_Buffer[7+i*4] = temp/(16*16*16); HexToAscii(&Send_Buffer[7+i*4]); temp %= 16*16*16; Send_Buffer[8+i*4] = temp/(16*16); HexToAscii(&Send_Buffer[8+i*4]); temp %= 16*16; Send_Buffer[9+i*4] = temp/(16); HexToAscii(&Send_Buffer[9+i*4]); temp %= 16; Send_Buffer[10+i*4] = temp; HexToAscii(&Send_Buffer[10+i*4]); } } // Send_For_User[0]=0; LRC_Cal(&Send_Buffer[1],Sendcount-4,CalKey); //¼ÆËãLRCУÑéÂë Send_Buffer[7+4*cnt]=CalKey[0]; Send_Buffer[8+4*cnt]=CalKey[1]; //Ìîд½áÊø·û Send_Buffer[9+4*cnt]='\r'; Send_Buffer[10+4*cnt]='\n'; Send_Index = 0; USART_ITConfig(USART3, USART_IT_TC, ENABLE);//¿ªÆôÊý¾Ý·¢ËÍÖÐ¶Ï } } void Sendvalue_Init(void) { if(Send_For_User[0]==0) { Send_For_User[1]=(u16)(I1_1); //µÚһ·ͨµÀÕýÏò¼«ÏÞµçÁ÷ Send_For_User[2]=(u16)(LIM_1); //µÚһ·ͨµÀÕýÏò¼«ÏÞLIM+ Send_For_User[3]=(u16)(IC_1); //ͨµÀÕýÏòÇл»µçÁ÷IC+ Send_For_User[4]=(u16)(C_1); //ͨµÀÕýÏòÇл»µãC+ Send_For_User[5]=(u16)(D_1); //ͨµÀÕýÏòËÀÇøD+ Send_For_User[6]=(u16)(I1_2); Send_For_User[7]=(u16)(LIM_2); Send_For_User[8]=(u16)(IC_2); Send_For_User[9]=(u16)(C_2); Send_For_User[10]=(u16)(D_2); Send_For_User[11]=(u16)(I1_3); Send_For_User[12]=(u16)(LIM_3); Send_For_User[13]=(u16)(IC_3); Send_For_User[14]=(u16)(C_3); Send_For_User[15]=(u16)(D_3); Send_For_User[16]=(u16)(I1_4); Send_For_User[17]=(u16)(LIM_4); Send_For_User[18]=(u16)(IC_4); Send_For_User[19]=(u16)(C_4); Send_For_User[20]=(u16)(D_4); Send_For_User[21]=(u16)(I1_5); Send_For_User[22]=(u16)(LIM_5); Send_For_User[23]=(u16)(IC_5); Send_For_User[24]=(u16)(C_5); Send_For_User[25]=(u16)(D_5); Send_For_User[26]=(u16)(I1_6); Send_For_User[27]=(u16)(LIM_6); Send_For_User[28]=(u16)(IC_6); Send_For_User[29]=(u16)(C_6); Send_For_User[30]=(u16)(D_6); Send_For_User[31]=(u16)(I1_7); Send_For_User[32]=(u16)(LIM_7); Send_For_User[33]=(u16)(IC_7); Send_For_User[34]=(u16)(C_7); Send_For_User[35]=(u16)(D_7); Send_For_User[36]=(u16)(I1_8); Send_For_User[37]=(u16)(LIM_8); Send_For_User[38]=(u16)(IC_8); Send_For_User[39]=(u16)(C_8); Send_For_User[40]=(u16)(D_8); Send_For_User[41]=(u16)(T1_1); Send_For_User[42]=(u16)(T1_2); Send_For_User[43]=(u16)(T2_1); Send_For_User[44]=(u16)(T2_2); Send_For_User[45]=(u16)(T3_1); //²Ù×Ý¿ª¹Ø¼ÓËÙʱ¼ä Send_For_User[46]=(u16)(T3_2); Send_For_User[47]=(u16)(T4_1); Send_For_User[48]=(u16)(T4_2); KAIGUANLIANG=GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11)+GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_11)*2+ GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_12)*4+GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_0)*8+ GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_4)*16+GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3)*32+ XH1*64; Send_For_User[49]=(u16)(KAIGUANLIANG);//¿ª¹ØÁ¿×´Ì¬ Send_For_User[50]=(u16)(I_FEEDBACK1); //±ÈÀýµç´ÅÌúµç1 Send_For_User[51]=(u16)(I_FEEDBACK2); //±ÈÀýµç´ÅÌúµç2 Send_For_User[52]=(u16)(I_FEEDBACK3); //±ÈÀýµç´ÅÌúµç3 Send_For_User[53]=(u16)(I_FEEDBACK4); //±ÈÀýµç´ÅÌúµç4 Send_For_User[54]=(u16)(I_FEEDBACK5); //±ÈÀýµç´ÅÌúµç5 Send_For_User[55]=(u16)(I_FEEDBACK6); //±ÈÀýµç´ÅÌúµç6 Send_For_User[56]=(u16)(I_FEEDBACK7); //±ÈÀýµç´ÅÌúµç7 Send_For_User[57]=(u16)(I_FEEDBACK8); //±ÈÀýµç´ÅÌúµç8 Send_For_User[58]=(u16)(I_FEEDBACK9); //¿ª¹Øµç´ÅÌú1 Send_For_User[59]=(u16)(I_FEEDBACK10); //¿ª¹Øµç´ÅÌú2 Send_For_User[60]=(u16)(I_FEEDBACK11); //¿ª¹Øµç´ÅÌú3 Send_For_User[61]=(u16)(I_FEEDBACK12); //¿ª¹Øµç´ÅÌú4 Send_For_User[62]=(u16)(V_DONGBI/10); //µçλÆ÷µçѹ1 Send_For_User[63]=(u16)(V_FANDOU/10); //µçλÆ÷µçѹ2 Send_For_User[64]=(u16)(V_FUZHU1/10); //µçλÆ÷µçѹ3 Send_For_User[65]=(u16)(V_FUZHU2/10); //µçλÆ÷µçѹ4 DLBJ=DL1| (DL2<<1) | (DL3<<2)|(DL4<<3) |(DL5<<4) | (DL6<<5) |(DL7<<6)| (DL8<<7) | (DL9<<8)|(DL10<<9) |(DL11<<10) | (DL12<<11); Send_For_User[66]=(u16)(DLBJ); dlBJ=dBJ(I_FEEDBACK1)| (dBJ(I_FEEDBACK2)<<1) | (dBJ(I_FEEDBACK3)<<2)|(dBJ(I_FEEDBACK4)<<3) |(dBJ(I_FEEDBACK5)<<4) | (dBJ(I_FEEDBACK6)<<5) |(dBJ(I_FEEDBACK7)<<6)| (dBJ(I_FEEDBACK8)<<7) | (dBJ(I_FEEDBACK9)<<8)|(dBJ(I_FEEDBACK10)<<9) |(dBJ(I_FEEDBACK11)<<10) | (dBJ(I_FEEDBACK12)<<11); if(dlBJ>0) BJBZ2=1; else if(dlBJ==0) BJBZ2=0; Send_For_User[67]=(u16)(dlBJ); if(DWBJ % 8 >0 || DLBJ>0 ) BJBZ1=1; else BJBZ1=0; DWBJ=DDBJ(V_DONGBI)| (DDBJ(V_FANDOU)<<1) | (DDBJ(V_FUZHU1)<<2)|(DDBJ(V_FUZHU2)<<3) |(XBJ(V_ZONG)<<4) |(XBJ1(V_ZONG)<<5) |(get_temperature()<<6); Send_For_User[68]=(u16)(DWBJ); Send_For_User[69]=(u16)(LINEAR1+LINEAR2*2+LINEAR3*4+LINEAR4*8+ZUOYI*256+XIEHE*512+YALI*1024); //Ä£ÄâͨµÀÇúÏß״̬ Send_For_User[0]=1; } } 
           
          
         
       
      
      
     
     
    
    
   
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值