2、32个邮箱和1个肯定不一样,如果程序来不及处理一些报文,邮箱多了可以保证一般不会丢报文。
3、例程只是测试功能是否可用,真正工程中通讯还是用中断处理的多,用中断可以提高通讯的响应速度。虽然邮箱多了,对响应速度的要求降低了一些,但用中断可以使处理器的效率提高一些。
认真看程序!void InitECana(void)中
/* Configure eCAN RX and TX pins for CAN operation using eCAN regs*/
ECanaShadow.CANTIOC.all = ECanaRegs.CANTIOC.all
ECanaShadow.CANTIOC.bit.TXFUNC = 1
ECanaRegs.CANTIOC.all = ECanaShadow.CANTIOC.all
void InitECanb(void)中
/* Configure eCAN RX and TX pins for CAN operation using eCAN regs*/
ECanbShadow.CANTIOC.all = ECanbRegs.CANTIOC.all
ECanbShadow.CANTIOC.bit.TXFUNC = 1
ECanbRegs.CANTIOC.all = ECanbShadow.CANTIOC.all
明显ECanaRegs与ECanbRegs不同,这对这两个寄存器赋值,才是对dsp硬件寄存器进行配置。
如果你要在程序中将数据帧传送给不同的邮箱,那么每次发送前都需要设置消息标示符寄存器MSGID,如果是发送给同一个邮箱的话,在初始化中设定1次就行了。一般情况下都是1对1的,即在初始化中将所有的发送邮箱和接收邮箱配置好。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)