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

📄 复件 sja_pelican.h

📁 参考周立功的basic模式的CAN通讯
💻 H
📖 第 1 页 / 共 2 页
字号:

/************************************************************************
 *内部地址 01EH 备用                                                    *
 ************************************************************************/

/************************************************************************
 *定义命令字                                                            *
 ************************************************************************/ 
#define         CMD_SEND             0x01       //发送请求命令
#define         CMD_ABORT_SEND       0x02       //夭折发送命令
#define         CMD_RELEASE_RXBUFF   0x04       //释放接收缓冲区
#define         CMD_CLEAR_OVER_STAT  0x08       //清除超载状态
#define         CMD_GOTO_SLEEP       0x10       //自身接收请求位  
/************************************************************************
 *定义16M的晶体下,CAN总线波特率                                        *
 ************************************************************************/
#define         ByteRate_20k      0x00          //波特率20kbps
#define         ByteRate_40k      0x01          //波特率40kbps
#define         ByteRate_50k      0x02          //波特率50kbps
#define         ByteRate_80k      0x03          //波特率80kbps
#define         ByteRate_100k     0x04          //波特率100kbps
#define         ByteRate_125k     0x05          //波特率125kbps
#define         ByteRate_200k     0x06          //波特率200kbps
#define         ByteRate_250k     0x07          //波特率250kbps
#define         ByteRate_400k     0x08          //波特率400kbps
#define         ByteRate_500k     0x09          //波特率500kbps
#define         ByteRate_666k     0x0a          //波特率666kbps
#define         ByteRate_800k     0x0b          //波特率800kbps
#define         ByteRate_1000k    0x0c          //波特率1000kbps
/*-------------------------------------------------------------------------------------------
 *  以下为PELICAN SJA1000的错误字                                                           
 -------------------------------------------------------------------------------------------*/
#define     CAN_INTERFACE_0K    0               //SJA1000接口正常
#define     CAN_BUS_0K          0               //CAN总线工作正常
#define     CAN_INTERFACE_ERR   0x31            //SJA1000接口错误
#define     CAN_ENTRESET_ERR    0x32            //SJA1000不能进入复位模式
#define     CAN_QUITRESET_ERR   0x33            //SJA1000不能退出复位模式
#define     CAN_INITOBJECT_ERR  0x34            //初始化报文验收滤波器错
#define     CAN_INITBTR_ERR     0x35            //初始化总线定时器器错
#define     CAN_INITOCR_ERR     0x36            //初始化输出控制错误
#define     CAN_INTCLKDIV_ERR   0x37            //初始化时钟分频控制器错
#define     CAN_BUS_ERR         0x38            //SJA1000发送数据错
#define     CAN_SETCDR_ERR      0x39           //SJA1000不能选择Peli模式

/************************************************************************
 *以下为基本的函数说明(BasicCAN)                                       *
 ************************************************************************/

/************************************************************************
 *函数原型:  bit   PCan_SelfTest(void)                                  * 
 *参数说明:  无                                                         *
 *返回值:                                                               *
 *           0 ; 表示SJA1000与处理器接口正常                            *
 *           1 ; 表示SJA1000与处理器接口不正常                          *
 *                                                                      *  
 *说明:该函数用于检测CAN控制器的接口是否正常                            *
 ************************************************************************/
 bit   PCan_SelfTest(void);      

/************************************************************************
 *函数原型:  bit   PCan_Enter_RstModel(void)                            *
 *参数说明:  无                                                         *
 *返回值:                                                               *
 *           0 ; 表示成功进入复位工作模式                               *
 *           1 ; 表示不能进入复位工作模式                               *
 *                                                                      * 
 *说明:      CAN控制器进入复位工作模式                                  *
 ************************************************************************/ 
 bit   PCan_Enter_RstModel(void);


 /************************************************************************
 *函数原型:  bit   PCan_Set_CDR(void)                                    *
 *参数说明:  无                                                          *
 *返回值:                                                                *
 *           0 ; 表示选择Peli模式成功                                    *
 *           1 ; 表示选择Peli模式失败                                    *
 *                                                                       *
 *说明:      CAN控制器选择Peli模式                                       *
 ************************************************************************/ 
 bit   PCan_Set_CDR(unsigned char CDR);


/************************************************************************
 *函数原型:  bit   PCan_Quit_RstModel(void)                             *
 *参数说明:  无                                                         *
 *返回值:                                                               *
 *           0 ; 表示成功退出复位工作模式                               *
 *           1 ; 表示不能退出复位工作模式                               *
 *                                                                      * 
 *说明:      CAN控制器退出复位工作模式                                  *
 ************************************************************************/ 
 bit   PCan_Quit_RstModel(void);

/************************************************************************
;*函数原型:   bit   PCan_Set_Bandrate(unsigned char CAN_ByteRate)       *
;************************************************************************/
bit   PCan_Set_BandRate(unsigned char CAN_ByteRate);

/************************************************************************
;*函数原型:   bit    PCan_Set_Object(unsigned char  PCan_ACR,           *
                                     unsigned char  PCan_AMR)           *
*参数说明:                                                              *
 *    PCan_ACR:存放验收代码寄存器(ACR)的参数设置                      *
 *    PCan_AMR:存放接收屏蔽寄存器(AMR)的参数设置                      *
;*返回值:                                                               *
;*           0 ;通信对象设置成功                                        *
;*           1 ;通信对象设置失败                                        *
;*                                                                      *
;*说明:设置CAN节点的通讯对象                                            *
;*    该子程序只能用于复位模式                                          *
;************************************************************************/
bit PCan_Set_Object(unsigned char  PCan_ACR0, 
					unsigned char  PCan_ACR1, 
					unsigned char  PCan_ACR2, 
					unsigned char  PCan_ACR3, 
					unsigned char  PCan_AMR0,
					unsigned char  PCan_AMR1,
					unsigned char  PCan_AMR2,
					unsigned char  PCan_AMR3);

/************************************************************************
;*函数原型: bit   PCan_Set_Outclk(unsigned char Out_Control)            *
;*参数说明:                                                             *
*     Out_Control:存放输出控制寄存器 (OC)  的参数设置                   *
*                                                                       *   
;*返回值:                                                               *
;*           0 ;设置成功                                                *
;*           1 ;设置失败                                                *
;*                                                                      * 
;*说明:设置SJA1000的输出模式和时钟分频 。该子程序只能用于复位模式       * 
;************************************************************************/
bit  PCan_Set_OCR(unsigned char Out_Control);      
                   
/************************************************************************
 *函数原型:  bit   PCan_Data_Send(unsigned char *SendDataBuf) 			*
 *参数说明:  特定帧各式的数据                                           *
 *返回值:                                                               *
 *           0    ; 表示将数据成功的送至发送缓冲区                      *
 *           1	  ; 表示上一次的数据正在发送,                          *
 *           	  ; 表示发送缓冲区被锁定,不能写入数据                  *
 *            	  ; 表示写入数据错误                                    * 
 *说明: 将待发送特定帧各式的数据,送入SJA1000发送缓存区中,然后启动     *
 *      SJA1000发送。                                                   *
 *   特定帧格式为:开始的两个字节存放 '描述符' ,以后的为数据             *
 *   描述符包括11位长的ID(标志符)\1位RTR\4位描述数据长度的DLC共16位    *
 *                                                                      *
 *注:本函数的返回值仅指示,将数据正确写入SJA1000发送缓存区中与否。     *
 *    不指示SJA1000将该数据正确发送到CAN总线上完毕与否                  *
 ************************************************************************/
 bit   PCan_Data_Send(unsigned char *SendDataBuf);
 
/************************************************************************
 *函数原型:  bit    PCan_Data_Recv(unsigned char *RcvDataBuf);          *
 *参数说明:  RcvDataBuf,存放微处理器保存数据缓冲区                      *
 *返回值:    0;接收成功                                                 *
 *           1;接收失败                                                 * 
 *说明: CAN控制器接收数据,仅限于接收数据                                *
 ************************************************************************/
 bit    PCan_Data_Recv(unsigned char *RcvDataBuf, unsigned char *ucBufLen);

/************************************************************************
 *函数原型:  bit   PCan_Cmd_Prg(unsigned char cmd)                      *
 *参数说明:  unsigned char cmd: sja1000运行的命令字                     *
 *           0x01: 发送请求                                             *
 *           0x02:中止发送                                             *
 *           0x04:释放接收缓冲区                                       *
 *           0x08:清除超载状态                                         *
 *           0x10: 自身接收请求位                                       *
 *                                                                      *
 *返回值:                                                               *
 *           0 ; 表示命令执行成功                                       *
 *           1 ; 表示命令执行失败                                       *
 *                                                                      * 
 *说明:      执行sja1000命令                                            * 
 ************************************************************************/ 
 bit  PCan_Cmd_Prg(unsigned char cmd);

#endif /* PeliCAN */

⌨️ 快捷键说明

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