保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

C8051F040中CAN控制器的应用


CAN0ADR=IF1DATA1;/*指向数据场的第一个字节*/

for(i=0;i<4;i++){

CAN0DAT=can_temp[i];/*将4字节数据写入发送缓冲器*/

}

CAN0ADR=IF1CMDRQST;

CAN0DATL=MsgNum;/*将报文对象编号写入,则数据发送到对应的报文对象中*/

}

3.2.3 接收程序

CAN报文的接收与发送一样,是由CAN控制器自动完成的,接收程序只需从接收缓存器中读取接收的数据,再进行相应的处理即可。其基本方法与发送程序一致,只是接收程序采用中断方式。在此应用中,接收程序主要接收上位机对下位机的参数设置数据,只有当修改时才需要接收数据,所以采用中断方式处理比较合适。接收程序结构如下:

void receive_data(void){

SFRPAGE=CAN0_PAGE;/*指向CAN0页面*/

CAN0ADR=IF1CMDMSK;/*向IF1命令屏蔽寄存器写入命令*/

CAN0DAT=0X0083;

CAN0ADR=IF1ARB2;/*指向IF1仲裁寄存器2*/

CAN0DATH|=0x80;

CAN0ADR=IF1DATA1;/*指向数据场的第一个字节*/

for(i=0;i<4;i++){

CAN0DAT=can_temp[i];/*将4字节数据写入发送缓冲器*/

}

CAN0ADR=IF1CMDRQST;

CAN0DATL=MsgNum;/*将报文对象编号写入,则数据发送到对应的报文对象中*/

}

3.2.3 接收程序

CAN报文的接收与发送一样,是由CAN控制器自动完成的,接收程序只需从接收缓存器中读取接收的数据,再进行相应的处理即可。其基本方法与发送程序一致,只是接收程序采用中断方式。在此应用中,接收程序主要接收上位机对下位机的参数设置数据,只有当修改时才需要接收数据,所以采用中断方式处理比较合适。接收程序结构如下:

Void receive_data(void){

SFPRAGE=CAN0_PAGE;/*指向CAN0页面*/

CAN0ADR=IF2CMDMSK;/*向IF2命令屏蔽寄存器写命令*/

CAN0DAT=0x003F;

CAN0ADR=IF2CMDRQST;/*将报文对象编号写入命令请求寄存器,对应地接收*/

CAN0DATL=MsgNum;/*得到数据就从报文RAM中移到数据缓冲器中*/

CAN0ADR=IF2DATA1;/*指向数据场的第一个字节*/

for(i=0;i<4;i++){ /*读取4个字节数据*/

CAN_RX[i]=CAN0DAT;

}

《C8051F040中CAN控制器的应用(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/155653.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。