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.
工具/软件:Code Composer Studio
大家好
我有2个设备、两个都是从设备(因此我从显示器发送0x80心跳信号)
两个器件都发送了 Candata:Device1:0x181、0x281、0x381、0x481... Device2:0x182、0x281、 0x382 0x482
我有16个邮箱作为 RX
这是屏蔽的示例代码
/*为 Rx 邮箱定义本地接受屏蔽*/
for (i=0;<CAN_RX_MAILBOXES;i++))
{
P_LAM_reg =&ECanaLAMRegs.LAM0 + I;//指向每个本地接受屏蔽的指针*
(* p_lam_reg).bit.Lami = 0;//仅标准标识符(作为 MBOX 自有标识符)*/// Lami = 1;标准和11位扩展时
(* p_lam_reg).bit.LAM_L = 0x0000;
if (i > 12)/*邮箱13-15 */
(* p_lam_reg).bit.LAM_H = 0x0604;//忽略11位标识符中的位0、7和8
/*对于 ID = 0x000 (NMT)、0x080 (SYNC)和0x100 (时间戳)以及0x81状态变化*有效
否则(I > 9)/*邮箱10-12 */
(* p_lam_reg).bit.LAM_H = 0x0600;//节点99中的 TPDO1 */
否则,如果(i < 6)/*邮箱0-5 */
(* p_lam_reg).bit.LAM_H = 0x1E04;//仅此节点 ID 的消息(忽略位0)*/
else /*邮箱6-9 */
(* p_lam_reg).bit.LAM_H = 0x0C00;//仅此节点 ID 的 PDO1和2消息*/
}
我不明白
为什么 /*邮箱0-5 */
* p_lam_reg).bit.LAM_H = 0x1E04;…… 0x1E04;0-5邮箱中的这个值意味着什么
邮箱6-9 */
(* p_lam_reg).bit.LAM_H = 0x0C00;…… 0x0C00;6-9邮箱中的这个值意味着什么
邮箱10-12 */
(* p_lam_reg).bit.LAM_H = 0x0600;... 0x0600在10-12个邮箱中此值的含义是什么
邮箱13-15 */
(* p_lam_reg).bit.LAM_H = 0x0604;... 0x0604这个来自13-15个邮箱的值是什么意思
此屏蔽正在将 CANbus 数据发送到 Display
但现在我想进行新的屏蔽以在2个器件之间进行通信、我的意思是、当 Device1发送 Candata 时、应该在器件2中接收 cantus 帧 PDOS
就像我可以从 device1读取0x181到 device2、从 device2读取0x182到 device1一样、因此我不需要进行新的屏蔽、但我想了解如何读取
Janybasha、
请下载我的应用报告 http://www.ti.com/lit/spra876。 具体而言、IAS 是一个明确说明接受屏蔽滤波工作原理的示例。 我还敦促您查看提供的调试提示。 请注意、app.note 示例是为 TMS320F28335器件编写的。 但是、如果您要处理 SYSCLKOUT 速度的变化以及 CANBTR 寄存器保证的结果变化、则可以通过 eCAN 将它们轻松地用于任何28x 器件。
虽然我们很乐意帮助您在我们的器件上实施 CAN、但我们很遗憾无法就您在 CANopen 上遇到的问题为您提供支持。 为此、您可能需要在线联系 CANopen 论坛。