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

📄 candriver.h

📁 ARM7上的UART驱动。含有周立功CAN232的协议转换
💻 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 + -