Microchip
直播中

柴扉

7年用户 191经验值
私信 关注
[问答]

Dspic33ep256mc502中的ECAN接收问题

#define NUM_OF_ECAN_BUFFERS 32unsignedintecan1MsgBuf[NUM_OF_ECAN_BUFFERS][8]_.((aligned(NUM_OF_ECAN_BUFFERS*16)))、void EcanRxInit(){C1CTRL1bits.REQOP=4;//set in configuration mode(C1CTRL1bits.OPMODE!4;EcanClkInit();C1FCTRLbits.DMABS=3;DMABS=3;//12FiFO C1FCTRL比特.FSA=3;//12FiFO中FiFOC1FCTRLC1FCTRLTTCTRL比特=3;//FiFo计数从第三缓冲区//C1FCFCFCTRL=0FSA=3;//FiFo计数从第三缓冲区//C1FCFCTRL=0FFFFFFFFFFF计数,32缓冲区Dma1RXInit()//32缓冲区Dma32缓冲区Dma1RXInit();;C1CTRLLLL1比特1C1CTRLL1比特1比特.WIN=1=1.WIN=1;;;;;F0MSK=0x0;/*C配置接受过滤器掩码0寄存器以掩码SID<2:0>*掩码位(11位):0b1111111 1111*/C1RXM0SIDbits.SID=0b11111111111;//C1RXM1SIDbits.SID=0b11111111111;/*配置接受过滤器0以匹配标准标识符-Filter位(11位):0b011010xxxSeD范围0x1D0~0x1D7的消息将被ECAN模块接受。*/C1RXF0SIDbits.SID=0b00000000000;/*Acceptance Filter 0检查标准标识符*/C1RXM0SIDbits.MIDE=0x1;C1RXF0SIDbits.EXIDE=0x0;g消息*/C1FEN1bits.FLTEN0=0x1;/*访问ECAN控制寄存器的清除窗口位*/C1CTRL1bit.WIN=0x0;C1TR23CONbits.TXEN2=0;C1TR23CONbits.TX2PRI=0b11;/*将ECAN模块置于正常模式。*/C1CTRL1BIT.ReQOP=0;而(C1CTRL1BITS)OPMODE!(0);}无效EcanClkInit()}无效EcanClkInit(){C1CTRL1位.CANCKS=0x0;C1CFCFCFG1位C1CFCFG1位C1CFG1C1CFG1位SJJW=0x3;SJJW=0x3;//同步seg seg=1tqC1CFG1C1CFG1位1tq=1tqC1CFG1G1C1CFG1位1tq=1tq,BRP=BRP=BRP_VAL;C1CFCFCFCFCFG2G2G2G2G2=BRP=BRP=BRP_BRP_BRP_VAL;C1CFG2G2G2G2G2G2G2G2G2=BRCFCFG2=BRCFG2=BRCFP=BRP_CFP G2bits.PRSEG=0x4;//proseg=3tq C1CFG2bits.SAM1; //总线线路在采样点//C1CFG2位采样3次,采样3次,采样3次,采样3次,采样点为//C1CFG2G2位。WAKFIL=1;}WAKFIL=1}void_u vo_u.u.u.u.(u中断_(u中断_(u中断_(u中断_(u中断(u截止_u中断_u auto_u auto_psv))DMA1中断(无效{{{{{如果(IFS0比特(IFS0bits.DMA1bits.DMA1bits.DMA1IF1IF位s.DMA1IF1IFprintf("%c),ecan1MsgBuf[2][3]&0xFF); printf("%c",(ecan1MsgBuf[2][4]&0xFF00) >> 8); printf("%c",ecan1MsgBuf[2][4]&0xFF); printf("%c",(ecan1MsgBuf[2][5]&0xFF00) >> 8); printf("%c",ecan1MsgBuf[2][5]&0xFF); printf("%c",(ecan1MsgBuf[2][6]&0xFF00) >> 8); printf("%c",ecan1MsgBuf[2][6]&0xFF)C1RXFUL1bits.RXFUL2=0;printf("nr");}IFS0bits.DMA1IF=0;}我已经如上所述进行了ecan接收。接收缓冲区将在我的接收节点的Tx管脚被拔出并重新连接时获得数据。我已经结束了我的巴士使用120欧姆电阻在两侧。我应该怎么做继续接待……?

回帖(19)

刘峰

2020-3-26 07:55:40
我们是否想通过端接120欧姆电阻来制造can总线,或者这个端接是否是在我们的dspic33ep256mc502控制器本身中完成的……?
举报

张娜

2020-3-26 08:08:37
嗯,不要在中断处理程序中做PROTFF……是的,在PIC之后,你需要终结者,也需要一个总线驱动!
举报

刘峰

2020-3-26 08:15:47
你说公共汽车司机是什么意思?
举报

张娜

2020-3-26 08:24:43
像LTC2575这样的东西,我们最近使用过。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分