This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TI F2812 eCAN有关邮箱滤波设置求助



首先F2812的eCAN模块是配置在eCAN增强模式,11位标识符。

我想使能多个邮箱接收,每个邮箱接收不同的的标识符

比如邮箱31我接收标识符为1XX XXXX XXXX

邮箱30我接收标识符为10XX XXXX XXXX

邮箱29我接收标识符为11XX XXXX XXXX

//LAMI

ECanaLAMRegs.LAM31.bit.LAMI = 1;
ECanaLAMRegs.LAM30.bit.LAMI = 1;
ECanaLAMRegs.LAM29.bit.LAMI = 1;

ECanaLAMRegs.LAM31.bit.LAM_H = 0x1000;
ECanaLAMRegs.LAM30.bit.LAM_H = 0x1800;
ECanaLAMRegs.LAM31.bit.LAM_H = 0x1800;

(X为无关项)

有关接受滤波的话,CAN2USB会设置两处,一处是掩码,表明标识符的某些位是有关项(即必须符合相应数字),有些位这是无关项(可以不符合)。

这样的话LAM寄存器的设置应该就是掩码,那么过滤码在哪里设置?

然后有关手册,本地接受屏蔽CANLAM 20.1(英2.20.1)一节,”进入的消息被存储在具有匹配标识符的编号最高的邮箱中。“这个是什么含义?

  • 您好,打扰您一下,我是初学者,我刚刚写了一个发送和接收的ecan程序(分别,见附件), A DSP发送,B DSP 接收。

    然后我是把发送的烧写进了A板。问题:在烧写的过程中,出现了一个警告:对于.const那一行,no matching,

    B板用仿真器进行观察寄存器里的值(没有烧,但Flash里已经有了以前固化的程序,具体是什么我清楚),然后load program到板子里,开始run,在接收邮箱前设置的有断点,然后我就分别把高、低16位装入观察窗口,发现里面已经有值了,这也太奇怪了吧,can的双绞线还没有连接怎么会有值呢,而且一断开,再一连接,值还是那个值。

    太奇怪了,由于是初学者,不知道哪里出了问题,所以想请教您一下,耽误您的宝贵时间了。我怀疑是我的程序有问题,但就是不知道问题出在哪里?

    请教您一下,帮忙看看,谢谢,不胜感激!

    祝您,工作顺利!

    发送和接收2个工程.zip
  • 我的邮箱是:1083176055@qq.com,期待您的回信。非常感谢!