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

📄 transducer.c

📁 通过串口控制变频器的程序源码 Transducer.c为变频器相关 Uart_Fun.c为串口相关 单片机采用新华龙的F020
💻 C
字号:
#define _TRANSDUCER_
#include "include.h"

/*******************************************************
函数名:send_cmd(unsigned char *send_data)
功能:发送命令
传入参数: unsigned char *send_data :要发送得数据
		   unsigned char Len :数据长度	
传出参数:无
********************************************************/
void send_cmd(unsigned char *send_data,unsigned char Len)
{
	unsigned int i;
	for(i=0;i<Len;i++)
	{
	  uart_send(send_data[i]);
	
	}
}

/**************************************************************
函数名:send_cmd(unsigned char *send_data)
功能:发送命令
传入参数: unsigned char *send_data
传出参数:无
***************************************************************/
void check_sum(unsigned char *send_data,unsigned char *result_sum)
{
	
   unsigned char i;
   unsigned int n,sum=0;

   for(i=0;i<strlen(send_data);i++)
   		sum +=(unsigned int)send_data[i];

   n = sprintf(result_sum,"%4x",sum);

   for(i=0;i<3;i++)	
   {
   		if(result_sum[i] == 32) result_sum[i]= '0';
	}

 }

/********************************************************************
函数名:data_encap_send(unsigned char *data_send)
功能描述:要发送的数据的封装和发送
传入参数:unsigned char *data_send :要发送的数据
传出参数:无
*********************************************************************/
void data_encap_send(unsigned char *data_send)
{
 	unsigned char buffer[20];
	unsigned char result_sum[4];
	int n;
	unsigned char i;
	check_sum(data_send,result_sum);
	n = sprintf(buffer,"%c%s%s%c",'~',data_send,result_sum,'\r');
	for(i=0;i<n;i++)
	{
		buffer[i]=toupper(buffer[i]);
	}
 	send_cmd(buffer,n);
 }

/****************************************************************************
函数名:data_send_process(unsigned char *send_data,float frequ)
函数功能:对要设定的频率进行设定并整合到send[]数组中
传入参数: unsigned char *send_data 要传入的数组,由前面DEFINE中定义的··中进行选择
		   float frequ :要设定的频率
传出参数:无		   	
*****************************************************************************/
void data_send_process(unsigned char *send_data,float frequ) 
{
   int tmp,n;
   char i;
   tmp = (int)(frequ*100);
   n = sprintf(send,"%s%4x",send_data,tmp);

   for(i=4;i>1;i--)	
   {
   		if(send[n-i] == 32) send[n-i]= '0';
	}

}

/**********************************************************************************
函数名:data_res_proce(void)
功能描述:接收数据并判断是否发送失败
传入参数:无
传出参数:char : 为0的话,传输正确,否则失败
************************************************************************************/
char data_res_proce(void)
{

	flg = 0;
    r=0;

	while(res[r-1]!=13 && r<=18);
	if(!flg) 
	 {
	 	if((res[3]==48) && (res[4]==48) ) return 0;
	 	else return 1;
	 }
	 return 1;


}

⌨️ 快捷键说明

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