📄 candriver.h
字号:
#ifndef _CANDRIVER_H
#define _CANDRIVER_H
#include "includes.h"
/* UART1和CAN相关的内容 */
/* 使用一个宏来定义UART1接收缓冲区的长度,CAN232的最大串口数据包长度为16字节,故最好大于16字节 */
#define UART1_BUFFER_LEN 20
// UART1波特率,9600是默认值
#define UART1BAUDRATE 9600
void InitUart1(void) ;
void UART1_RECV(void) ;
void writeUart1Char(const INT8U c);
void writeUart1Str(INT8U *str);
void writeUart1(INT8U *buf, INT16U bytes) ;
// CAN的波特率
#define CAN_250KBPS 4
#define CAN_500KBPS 5
// 接收到UART1的数据后,是否在中断中自动调用对CAN数据的处理
#define HANDLE_CAN_IN_INTERRUPT_EN 1
/*
************************************
* CAN0,CAN1 分别对应MSCAN0,MACAN1, 无用!只是为了兼容以前的接口
************************************
*/
#define CAN0 0
#define CAN1 1
/*
************************************
* 协议规定的帧类型
************************************
*/
#define CAN_EXTENDED_DATA_ID 1
#define CAN_EXTENDED_REMOTE_ID 2
#define CAN_STANDARD_DATA_ID 3
#define CAN_STANDARD_REMOTE_ID 4
/*
*******************************************************
* CAN帧软件缓冲结构体,在CAN232中,使用的字段比12少多了
*******************************************************
*/
typedef struct FrameStruct
{
INT8U ID_Type;
INT8U Data_Len;
INT16U ID_High;
INT16U ID_Low;
INT8U Data[8];
}vCANFrameStruct;
void InitCan(INT8U baudrate);
void handleCAN(void) ;
INT16U vCAN_TxMsg(vCANFrameStruct *tx_msg, INT8U NotUsed) ;
extern void ISRRecieveMsg(INT32U ID, INT8U *data , INT8U len) ;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -