您的位置 首页 培训

avr can芯片运用

includeioCAN128vh>structMOb{unsignedlongid;unsignedchardata[8];};voidcan_init(void);voidcan_tx(st

#include

struct MOb{unsigned long id;unsigned char data [8];};void can_init (void);void can_tx (struct MOb msg);void can_rx (struct MOb msg);void can_init (void){unsigned char i,j;//reset CAN interfaceCANGCON |= (1< baudrate// bit timing -> datasheet 264 (check table)// 250Kbps 16MHz cpu-clkCANBT1 = 0x0E;//16M/8=2MCANBT2 = 0x04;//3QTCANBT3 = 0x13;//2+2=4// clear CAN interrupt registersCANGIE = 0; // none interruptsCANIE1 = 0; // none interrupts on MObsCANIE2 = 0;CANSIT1 = 0;CANSIT2 = 0;//start CAN interfaceCANGCON = (1<<1);//wait until module readywhile (!(CANGSTA & (1<>8);CANIDT2 = (unsigned char) (msg.id>>16);CANIDT1 = (unsigned char) (msg.id>>24);//put data in mailboxfor (i=0; i<8; i++)CANMSG = msg.data [i];//enable transmissionCANCDMOB |= (1<> 5);CANIDT2 = (unsigned char)(msg.id >> 13);CANIDT1 = (unsigned char)(msg.id >> 21);// set mask in order to receive only the message with the IDCANIDM4 = 248;CANIDM3 = 255;CANIDM2 = 255;CANIDM1 = 255;// enable extended IDCANIDM4 |= (1<>= 3;}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/255652.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部