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

📄 mscan12.h

📁 MC9S12单片机 CAN总线初始化及数据发送
💻 H
字号:
//[MSCAN12.h]CAN通信头文件--------------------------------------------------

//CAN通信需要用到的头文件
#include "Type.h"           //类型别名定义
#include "mc9s12dg128.h"    //MCU映像寄存器名

//CAN通信寄存器及标志位定义
#define CANE 7          //MSCAN12模块使能位
#define INITRQ 0        //MSCAN12模块初始化请求位
#define INITACK 0       //MSCAN12模块初始化应答位
#define CLKSRC 6        //MSCAN12时钟选择位
#define LOOPB 5         //自测位
#define LISTEN 4        //只听模式位,只听模式时不能发送
#define DataFrm    1    //数据帧类型
#define RemoteFrm  2    //远程帧类型
#define RXF  0          //接收满标志位
#define TXE0 0          //发送缓冲区0空标志位
#define TXE1 1          //发送缓冲区1空标志位
#define TXE2 2          //发送缓冲区2空标志位
#define TXS0 0          //发送缓冲区0被选中
#define TXS1 1          //发送缓冲区1被选中
#define TXS2 2          //发送缓冲区2被选中
#define TXF0 0          //发送缓冲区0满
#define TXF1 1          //发送缓冲区1满
#define TXF2 2          //发送缓冲区2满
#define IDE  3          //IDE位
#define RTR  4          //RTR位
#define ERTR 0          //扩展帧中的RTR位
#define CAN0TXFG CAN0TXIDR0
#define CAN0RXFG CAN0RXIDR0

//CAN通信用到的设置量定义
//bit.7-6=00,同步跳转宽度为1,bit.5-0=000100,预分频因子为5
#define CAN0BTR0V  0x04  

//bit.7=0,单次采样,bit.6-4=010,时间段2为3,bit.3-0=0101,
//时间段1为6,0b00100101,故位速率=1.97M/10=197kbps
#define CAN0BTR1V  0x25 

//两个32位验收滤波器,滤波器0命中
#define CAN0IDACV  0x00

//本地节点标识符定义为00000000 000
#define CAN0IDAR0V 0x00
#define CAN0IDAR1V 0

//本地节点标识符屏蔽寄存器定义为相关00000000 000
#define CAN0IDMR0V 0x00
#define CAN0IDMR1V 0x1F

//不允许接收中断
#define CAN0TIERV  0x00

//不允许发送缓冲区空中断
#define CAN0TIERV   0x00

//CAN通信相关函数声明

//CAN通信初始化
void CANInit(void);
//CAN发送1帧数据帧(数据长度<=8)
INT8U CANSND1DFRM(INT16U ID,INT8U * DataBUF,INT8U LEN);
//查找空闲发送缓冲区
INT8U GetSNDBUF(void);
//接收1帧
INT8U CANRCV1FRM(INT8U * CANRCVBUF);

⌨️ 快捷键说明

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