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

📄 sja1000io.c

📁 Small RTOS 下SJA1000驱动程序的编写。主要介绍了在实时操作系统Small RTOS下
💻 C
字号:
/*
 ********************************************************************************************************************
 *描述:    独立的CAN 控制器SJA1000与硬件接口管理文件
 *文件名:   SJA1000IO.C
 *应用语言: KEIL C51
 *版本 :    V1.01
 *广州周立功单片机发展有限公司 保留所有的版权
 ********************************************************************************************************************
 */
#define		_GLOBAL_SJA1000IO_

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


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

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

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

	*(SJA_CS_Point + RegAdr) = Value;
	return 0x00;	
}



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

	return(*(SJA_CS_Point + RegAdr));
}

⌨️ 快捷键说明

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