请问下关于DSP28335中ECAN模块中的几个问题。

请问下关于DSP28335中ECAN模块中的几个问题。,第1张

1、以前没用过屏蔽码和过滤器,都是全部接收后软件处理的,这个我回答不了,不过也简单,编个程序测试一下看看就知道了。

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的,即在初始化中将所有的发送邮箱和接收邮箱配置好。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12041202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存