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

📄 can591io.c

📁 can总线通信的以C51庫文件
💻 C
字号:
/*
 ********************************************************************************************************************
 *描述:    P8XC591CAN硬件接口管理文件
 *文件名:   CAN591IO.C
 *应用语言: KEIL C51
 *版本 :    V1.0
 *广州周立功单片机发展有限公司 保留所有的版权
 ********************************************************************************************************************
 */
#define		_GLOBAL_CAN591IO_

/*
************************************************************************************************************************
**                           导入头文件
************************************************************************************************************************
*/
#include	"CAN591_PELI_APP.H"

/*
************************************************************************************************************************
**函数原型:     char   WriteSJARegBlock(unsigned char RegAdr,unsigned char  *ValueBuf,
**									   unsigned char len)
**参数说明:     ValueValueBuf  	写入寄存器的值的存储器地址
**				RegAdr 			要写入591的内部寄存器地址
**				len				要写入591内部寄存器的长度
**返回值:       SJA_OK    		写入正确
**				!SJA_OK        写入不正确
**说明:         该函数用于将指定的数值写入591的指定的寄存器
************************************************************************************************************************
*/
char   WriteSJARegBlock(unsigned char RegAdr,unsigned char  *ValueBuf,
									   unsigned char len)
{
	unsigned	char	i;
    if(len != 0){
    	      if(RegAdr<32)
		    for(i=0;i<len;i++){
		       REG_CANADR=RegAdr+i;
		       REG_CANDAT=*(ValueBuf+i);
		    }
		else 
		{
		    REG_CANADR=RegAdr;
		    for(i=0;i<len;i++)
		    {
		       REG_CANDAT=*(ValueBuf+i);
		    }
		}
	}
	return 0x00;
}

/*
************************************************************************************************************************
**函数原型:     char   ReadSJAReg(unsigned char RegAdr,unsigned char  *ValueBuf,
**									   unsigned char len)
**参数说明:     ValueValueBuf  	存储读出寄存器的值的存储器地址
**				RegAdr 			要读的591的内部寄存器地址
**				len				要读出591内部寄存器的长度
**返回值:       SJA_OK    		读出正确
**				!SJA_OK        读出不正确
**说明:         该函数用于读出591的指定的寄存器
************************************************************************************************************************
*/
char   ReadSJARegBlock(unsigned char RegAdr,unsigned char  *ValueBuf,
									   unsigned char len)
{
	unsigned	char	i;
	if(len != 0){
		if(RegAdr<32)
		for(i=0;i<len;i++){
			REG_CANADR=RegAdr+i;
		       *(ValueBuf+i)=REG_CANDAT;
		}
		else
		{
		    REG_CANADR=RegAdr;
		    for(i=0;i<len;i++)
		    {
		       *(ValueBuf+i)=REG_CANDAT;
		    }
		}
	}
	return 0x00;
}

/*
************************************************************************************************************************
**函数原型:     char   WriteSJAReg(unsigned char RegAdr,unsigned char  Value)
**参数说明:     Value  	写入寄存器的值
**				RegAdr 			要写入591的内部寄存器地址
**返回值:       SJA_OK    		写入正确
**				!SJA_OK        写入不正确
**说明:         该函数用于将指定的数值写入591的指定的寄存器
************************************************************************************************************************
*/
char   WriteSJAReg(unsigned char RegAdr,unsigned char  Value)
{

    REG_CANADR=RegAdr;
    REG_CANDAT=Value;
	return 0x00;	
}



/*
************************************************************************************************************************
**函数原型:     unsigned	char   ReadSJAReg(unsigned char RegAdr)
**参数说明:     
**				RegAdr 			要读的591的内部寄存器地址
**返回值:       reg的值
**说明:         该函数用于读出591的指定的寄存器
************************************************************************************************************************
*/
unsigned	char   ReadSJAReg(unsigned char RegAdr)
{
    REG_CANADR=RegAdr;
	return(REG_CANDAT);
}

⌨️ 快捷键说明

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