📄 gz60-can-function
字号:
//------------------------------------------------------------------------------------------------//
//程序名:void CANInit(unsigned char time1,unsigned char time0)
//功能:CAN初始化
//入口:无
//出口:无
//说明:在4M CAN总线频率下将总线速率设为200kbps,
// 节点标识符设为0
//--------------------------------------------------------------------------------------------------//
void CANInit(void)
{
CMCR0_SFTRES=1 ;//控制寄存器的软复位标志为1
CMCR1_CLKSRC=0; //MSCAN08时钟源选择外部晶振(二分频);即若外部晶振为16M时,fmscan=8M //
CMCR1_LOOPB=1; //自测方式
CMCR1_WUPM=1;
CBTR0=0x01; //同步跳转宽度为1,预分频因子为2
CBTR1=0x25; //同步跳转宽度=1(Tq),时间段1=6(Tq),TSEG2=3(Tq) 位时间=1+6+3=10(Tq);
//速率设为400kbps
CIDAC=0x00; //1次验收滤波器模式
CIDAR0=0b00000001;
CIDAR1=0b01000000; //给接收代码寄存器0-1赋值,节点标示符号为10
CIDMR0=0x00; //给接收屏蔽寄存器0-1赋值
CIDMR1=0x1F;
CMCR0=0x00; //正常模式
}
//------------------------------------------------------------------//
//程序名:unsigned char CANsnd1DFrm(unsigned int rid,
// unsigned char * databuf,unsigned char len)
//功能:CAN发送1帧(数据长度<=8)处理子程序
//入口:unsigned int rid---报文标识符,
// unsigned char * databuf---报文数据区首址
// unsigned char len---报文数据长度
//出口:unsigned char CANsnd1DFrm --- 发送成功与否标志,
// =0,没有空闲发送缓冲区,发送不成功;=1,发送成功
//说明:在发送数据之前,先查询是否有空闲发送缓冲区
// 若无,则不能发送,返回0。
//------------------------------------------------------------------//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -