📄 can591io.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 + -