TI中文支持网
TI专业的中文技术问题搜集分享网站

F28035的CAN调试问题

               参考F28035的工程实例,调试CAN发送的程序,但是遇到一些问题,请教一下各位:

  //使能MAILBOX0    

ECanaShadow.CANME.all = ECanaRegs.CANME.all;    

ECanaShadow.CANME.bit.ME0 = 1;    

 ECanaRegs.CANME.all = ECanaShadow.CANME.all;

    // MAILBOX0作为发送邮箱    

ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;    

 ECanaShadow.CANMD.bit.MD20 = 0;   

  ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;

 // 发送邮箱MAILBOX的ID设置    

ECanaMboxes.MBOX0.MSGID.all  = 0x18FF2010;

    // MAILBOX0的数据长度设置    

ECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8;

    // MAILBOX0数据域写入    

 ECanaMboxes.MBOX0.MDL.all = 0x9555AAA0;    

 ECanaMboxes.MBOX0.MDH.all = 0x89ABCDEF;

    // Begin transmitting    

 for(;;)    

 {        

ECanaShadow.CANTRS.all    = 0;        

ECanaShadow.CANTRS.bit.TRS0  = 1;              

 // Set TRS for mailbox under test        

ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;

        do       {         ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;       }

while(ECanaShadow.CANTA.bit.TA0 == 0 );   // Wait for TA5 bit to be set..

        ECanaShadow.CANTA.all    = 0;        

ECanaShadow.CANTA.bit.TA0  = 1;                // Clear TA5        

 ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;   

  }

可是利用CAN-USB的转接工具(确定是好的),始终监视不到发送的数据,

论坛查询是需要另外一个CAN节点需要返回传输确认信号(请问是否是这样??)

 

如果是需要返回确认信号,那么另外一个节点配置成接收邮箱就可以了??

(还是不用配置,直接由CAN收发器(比如SN65HVD230)自动发出确认信号的???)

貌似没找到专门配置确认信号的地方? 

 

 

BIN YAO1:

ECanaShadow.CANMD.bit.MD20 = 0;你这里配置的是20通道的发送,而不是0通道的。请确认是否已将0通道配置为发送通道。

               参考F28035的工程实例,调试CAN发送的程序,但是遇到一些问题,请教一下各位:

  //使能MAILBOX0    

ECanaShadow.CANME.all = ECanaRegs.CANME.all;    

ECanaShadow.CANME.bit.ME0 = 1;    

 ECanaRegs.CANME.all = ECanaShadow.CANME.all;

    // MAILBOX0作为发送邮箱    

ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;    

 ECanaShadow.CANMD.bit.MD20 = 0;   

  ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;

 // 发送邮箱MAILBOX的ID设置    

ECanaMboxes.MBOX0.MSGID.all  = 0x18FF2010;

    // MAILBOX0的数据长度设置    

ECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8;

    // MAILBOX0数据域写入    

 ECanaMboxes.MBOX0.MDL.all = 0x9555AAA0;    

 ECanaMboxes.MBOX0.MDH.all = 0x89ABCDEF;

    // Begin transmitting    

 for(;;)    

 {        

ECanaShadow.CANTRS.all    = 0;        

ECanaShadow.CANTRS.bit.TRS0  = 1;              

 // Set TRS for mailbox under test        

ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;

        do       {         ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;       }

while(ECanaShadow.CANTA.bit.TA0 == 0 );   // Wait for TA5 bit to be set..

        ECanaShadow.CANTA.all    = 0;        

ECanaShadow.CANTA.bit.TA0  = 1;                // Clear TA5        

 ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;   

  }

可是利用CAN-USB的转接工具(确定是好的),始终监视不到发送的数据,

论坛查询是需要另外一个CAN节点需要返回传输确认信号(请问是否是这样??)

 

如果是需要返回确认信号,那么另外一个节点配置成接收邮箱就可以了??

(还是不用配置,直接由CAN收发器(比如SN65HVD230)自动发出确认信号的???)

貌似没找到专门配置确认信号的地方? 

 

 

MicroE:

回复 BIN YAO1:

即使修改成0通道为发送,CAN-USB监控也没反应!

               参考F28035的工程实例,调试CAN发送的程序,但是遇到一些问题,请教一下各位:

  //使能MAILBOX0    

ECanaShadow.CANME.all = ECanaRegs.CANME.all;    

ECanaShadow.CANME.bit.ME0 = 1;    

 ECanaRegs.CANME.all = ECanaShadow.CANME.all;

    // MAILBOX0作为发送邮箱    

ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;    

 ECanaShadow.CANMD.bit.MD20 = 0;   

  ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;

 // 发送邮箱MAILBOX的ID设置    

ECanaMboxes.MBOX0.MSGID.all  = 0x18FF2010;

    // MAILBOX0的数据长度设置    

ECanaMboxes.MBOX0.MSGCTRL.bit.DLC = 8;

    // MAILBOX0数据域写入    

 ECanaMboxes.MBOX0.MDL.all = 0x9555AAA0;    

 ECanaMboxes.MBOX0.MDH.all = 0x89ABCDEF;

    // Begin transmitting    

 for(;;)    

 {        

ECanaShadow.CANTRS.all    = 0;        

ECanaShadow.CANTRS.bit.TRS0  = 1;              

 // Set TRS for mailbox under test        

ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;

        do       {         ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;       }

while(ECanaShadow.CANTA.bit.TA0 == 0 );   // Wait for TA5 bit to be set..

        ECanaShadow.CANTA.all    = 0;        

ECanaShadow.CANTA.bit.TA0  = 1;                // Clear TA5        

 ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;   

  }

可是利用CAN-USB的转接工具(确定是好的),始终监视不到发送的数据,

论坛查询是需要另外一个CAN节点需要返回传输确认信号(请问是否是这样??)

 

如果是需要返回确认信号,那么另外一个节点配置成接收邮箱就可以了??

(还是不用配置,直接由CAN收发器(比如SN65HVD230)自动发出确认信号的???)

貌似没找到专门配置确认信号的地方? 

 

 

BIN YAO1:

回复 MicroE:

在配置CAN通道MSGID的时候要保证通道处于关闭状态,即ME为0.而你在配置时是先开了通道,再配置的MSGID。你观察下,运行后通道的MSGID是否为你配置的内容。

赞(0)
未经允许不得转载:TI中文支持网 » F28035的CAN调试问题
分享到: 更多 (0)