📄 low_can_bus.h
字号:
/*
**********************************************************************************************
* HQE
* The Dual area climate-control system
*
*
* (c) Copyright 2008- , LongFine Automotive Electrical Co.Ltd
* All Rights Reserved
*
*
* File : canbus_sja1k.h
* By : zhanghouyuan
* Date : 2008/5/20
*
* CPU TYPE : M30290
* Description : nop()
* Version : Ver.0.0
**********************************************************************************************
*/
#ifdef CANBUS_SJA1K_GLOBALS
#define CANBUS_SJA1K_EXT
#else
#define CANBUS_SJA1K_EXT extern
#endif
/**************************定义寻址的基址****************************************************/
#define CR_Addr 0
#define CMR_Addr 1
#define SR_Addr 2
#define IR_Addr 3
#define ACR_Addr 4
#define AMR_Addr 5
#define BTR0_Addr 6
#define BTR1_Addr 7
#define OCR_Addr 8
#define CHK_REG_Addr 9
#define CDR_Addr 31
//#define ERR_CHK_Ctr 20
/**************************定义总线定时寄存器的值********************************************/
#define SJA_BTR0 0x40 /*system clock 4MHz,sja1000 baudrate is 125kbp*/
#define SJA_BTR1 0xBA /*SJW = 2;smaple point 75%*/
/**************************设置接收报文类型(标示符)********************************************/
#define SJA_ACR 0x33 //验收代码寄存器的值0x333
#define SJA_AMR 0xFF //验收屏蔽寄存器的值
/**************************设置输出始终类型********************************************/
#define SJA_OCR 0x02 //输出控制寄存器的值:正常输出模式
#define SJA_CDR 0x08 //Basic can mode; CLKOUT output off;cbp = 0;
/**************************设置SJA中断,1为开中断********************************************/
#define SJA_OIE 1 //溢出中断
#define SJA_EIE 1 //错误中断
#define SJA_TIE 1 //发送中断
#define SJA_RIE 1 //接收中断
/**************************定义SJA1000读写缓冲区的数据结构********************************************/
typedef struct BASICCAN_BUFstruct
{
unsigned char FrameID_H;
unsigned char FrameLENTH ;
unsigned char FrameKIND ;
unsigned char FrameID_L3 ;
unsigned char Frame_Data[8];
} BASICCAN_FRAME;
CANBUS_SJA1K_EXT BASICCAN_FRAME receive_BUF,send_BUF;
/*
*******************************************************************************************
*function name : canbus_sja1k;
*
*
*main() call canbus_sja1k(void);
*
*
*
*
*********************************************************************************************
*/
CANBUS_SJA1K_EXT void Low_CAN_Task(void);
/*
*******************************************************************************************
*function name : canbus_sja1k_init;
*
*
*canbus_sja1k() call canbus_sja1k(void);
*
*config :work mode or reset mode ;baudrate;ect;
*
*
*********************************************************************************************
*/
CANBUS_SJA1K_EXT void sja1000_init(void);
CANBUS_SJA1K_EXT void target_init(void);
CANBUS_SJA1K_EXT void sja1000_reset_on(void);
CANBUS_SJA1K_EXT void sja1000_reset_off(void);
CANBUS_SJA1K_EXT void sja1000_config(void);
CANBUS_SJA1K_EXT void write_sja1000(INT8U,INT8U);
CANBUS_SJA1K_EXT void send_add(INT8U);
CANBUS_SJA1K_EXT void send_byte(INT8U);
CANBUS_SJA1K_EXT INT8U read_sja1000(INT8U);
CANBUS_SJA1K_EXT INT8U check_hard_connect(void);
CANBUS_SJA1K_EXT INT8U setting_reset_mode(void);
CANBUS_SJA1K_EXT INT8U setting_working_mode(void);
CANBUS_SJA1K_EXT INT8U setting_sja_rate(void);
CANBUS_SJA1K_EXT INT8U setting_data_select(void);
CANBUS_SJA1K_EXT INT8U setting_cdr(void);
CANBUS_SJA1K_EXT INT8U setting_ocr(void);
CANBUS_SJA1K_EXT INT8U Write_SJA_SendBuf(void);
CANBUS_SJA1K_EXT INT8U Read_SJA_RecBuf(void);
CANBUS_SJA1K_EXT INT8U receive_data(void);
CANBUS_SJA1K_EXT void send_add0(INT8U);
CANBUS_SJA1K_EXT INT8U DATA,STA,key60;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -