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

📄 detmodul.c

📁 单片机程序,和上位机通讯,采集下位机的射频信号的功率,接收上位机的指令并向上位机回送采集到的下位机的信息,我花了一个月才开发出来的.绝对真实,可靠性强.
💻 C
字号:
#include "fDETDeclare.H"
#include "DETConst.H"
#include "RS485BUF_EX.H"
const unsigned char  code ModuleVer[2]= {1,0};
void fModuleVersionCheck(void)
{
    unsigned char i;
    RS485Buffer[5]=10;
	RS485Buffer[6]=ModuleVer[0];
	RS485Buffer[7]=ModuleVer[1];
	for(i=0;i<8;i++){
       RS485Buffer[8+i]=0;
	}
	TransmitAck();

}
void fSetDetCalBase(void)
{
       unsigned int T1549Val;
       if((RS485Buffer[2]&0x08)!=0){
                    T1549Val =UT1549Val;                        //选通上行模块

	}
	else{
                                 //选通下行模块
                 T1549Val =DT1549Val;

	}
       
       if(RS485Buffer[6]==1){  //校准直线的第一点
            fEepromWrite(&RS485Buffer[7],0x0020,1);//存校准直线第一点功率值(dB)
			power1=RS485Buffer[7];
            fEepromWriteW(T1549Val,0x0021);
			powervolt1=T1549Val;
       }
       else{
            fEepromWrite(&RS485Buffer[7],0x0030,1);//存校准直线第一点功率值(dB
			power2=RS485Buffer[7];
            fEepromWriteW(T1549Val,0x0031);
			powervolt2=T1549Val;
       }
	   
       TransmitAck();

}
void fReadDetCalBase(void)
{
      unsigned int iDetpower;
      unsigned char i;

      fEepromRead(&RS485Buffer[6],0x0020,1);//读第一点功率值
      fEepromReadW(&iDetpower,0x0021); //读 第一点功率值所对应的A/D采集值
      DetPower.powervolt=(float)iDetpower*5/1024;  //转换成电压值
      for(i=0;i<4;i++){
          RS485Buffer[7+i]=DetPower.powerarray[3-i];    //存校准直线第一点
      }

      //写第二点
      fEepromRead(&RS485Buffer[11],0x0030,1);
      fEepromReadW(&iDetpower,0x0031);
      DetPower.powervolt=(float)iDetpower*5/1024;
      for(i=0;i<4;i++){
           RS485Buffer[12+i]=DetPower.powerarray[3-i];
      }
      RS485Buffer[4]=0x00;
      RS485Buffer[5]=10;
      TransmitAck();
}

//实时返回采集到的功率值
void fDETStateCheck(void)
{

     if((RS485Buffer[2]&0x08)==0x08){//需送的是上行链路的数据
         RS485Buffer[7] =UDETPOWERVAL;

     }
     else{
          RS485Buffer[7] =LDETPOWERVAL;
     }

	 //else if((RS485Buffer[2]&0x0f)==0x09){ 
     //    RS485Buffer[7] =LDETPOWERVAL;//对光纤远端上行

     //}
    // else{//对光纤远端下行
    //      RS485Buffer[7] =UDETPOWERVAL;
    // }
     RS485Buffer[4]=0x00;
     RS485Buffer[5]=0x02;
     RS485Buffer[6]=DETMODULSTATE;
     TransmitAck();

}

char fPowerCheck(void)
{
   
     char i;
     float PowerSlope,samplepower;//功率曲线斜

⌨️ 快捷键说明

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