candeal0.h
来自「含20个经典例程」· C头文件 代码 · 共 35 行
H
35 行
//////////////candeal0.h/////////////////////
#include "can.h"
void transmit (char MsgNum)
{ uchar num;
SFRPAGE = CAN0_PAGE;
CAN0ADR = IF1CMDMSK;
CAN0DAT = 0x0087;
/* IF1 Command Mask Registers =0x0087
WR/RD=1,Mask=0,Arb=0,Control=0,ClrIntPnd=0,TxRqst=1,DataA=1,DataB=1,一次发送8字节数据*/
CAN0ADR = IF1DATA1;
/*将8字节数据写入IF1*/
for(num=0;num<8;num++){
CAN0DATH=sdata[num];
num++;
CAN0DATL=sdata[num];
}
CAN0ADR = IF1CMDRQST;
CAN0DATL = MsgNum; //将以上配置写入MsgNum号CAN消息
}
void receive_data (uchar MsgNum)
{
uchar i;
SFRPAGE = CAN0_PAGE;
CAN0ADR = IF2CMDMSK;
CAN0DATL = 0x0f;
/* IF1 Command Mask Registers =0xxx0f
WR/RD=0,Mask=0,Arb=0,Control=0,ClrIntPnd=1,NewDat=1,DataA=1,DataB=1,一次发送8字节数据*/
CAN0ADR = IF2CMDRQST;
CAN0DATL = MsgNum; //指向MsgNum号消息
CAN0ADR = IF2DATA1;
for(i=0;i<4;i++)
rdata[i].tempval=CAN0DAT;//接收数据
isnewdata=1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?