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

F28335+周立功can+向上位机发送数据

我用TI中的例程ecan_a_to_b_xmit中的程序向上位机发送数据,虽然这个例程是两块dsp之间的数据传输,但是我个人理解的只要是配置为发送邮箱,并把数据写入   ECanaMboxes.MBOX25.MDL.all = data1;
ECanaMboxes.MBOX25.MDH.all = data2;中就可以向上位机发送数据。但是现在程序运行不起来一直停留在

do
        {
          ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
        } while(ECanaShadow.CANTA.bit.TA25 == 0 );   // Wait for TA5 bit to be set..

就是说数据一直没有发送出来,发送应答寄存器没有置位,我现在一直想不通,求助TI人,谢谢。

mangui zhang:

你好  请查看附件中的文档    重点讲解了CAN

 

我用TI中的例程ecan_a_to_b_xmit中的程序向上位机发送数据,虽然这个例程是两块dsp之间的数据传输,但是我个人理解的只要是配置为发送邮箱,并把数据写入   ECanaMboxes.MBOX25.MDL.all = data1;
ECanaMboxes.MBOX25.MDH.all = data2;中就可以向上位机发送数据。但是现在程序运行不起来一直停留在

do
        {
          ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
        } while(ECanaShadow.CANTA.bit.TA25 == 0 );   // Wait for TA5 bit to be set..

就是说数据一直没有发送出来,发送应答寄存器没有置位,我现在一直想不通,求助TI人,谢谢。

chao ye1:

我也碰到相同的问题,最后在上位机波特率设置为DSP发送波特率的一半即500kbps就能正常发送了,原因还不清楚

我用TI中的例程ecan_a_to_b_xmit中的程序向上位机发送数据,虽然这个例程是两块dsp之间的数据传输,但是我个人理解的只要是配置为发送邮箱,并把数据写入   ECanaMboxes.MBOX25.MDL.all = data1;
ECanaMboxes.MBOX25.MDH.all = data2;中就可以向上位机发送数据。但是现在程序运行不起来一直停留在

do
        {
          ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
        } while(ECanaShadow.CANTA.bit.TA25 == 0 );   // Wait for TA5 bit to be set..

就是说数据一直没有发送出来,发送应答寄存器没有置位,我现在一直想不通,求助TI人,谢谢。

Zhou Tiejun:

这个do while循环就是在检查是否有应答,如果CAN控制器没有收到应答是不会继续发送消息的。

没收到应答说明CAN卡不在总线上,检查CAN卡驱动以及检查是否成功启动CAN卡。

我用TI中的例程ecan_a_to_b_xmit中的程序向上位机发送数据,虽然这个例程是两块dsp之间的数据传输,但是我个人理解的只要是配置为发送邮箱,并把数据写入   ECanaMboxes.MBOX25.MDL.all = data1;
ECanaMboxes.MBOX25.MDH.all = data2;中就可以向上位机发送数据。但是现在程序运行不起来一直停留在

do
        {
          ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
        } while(ECanaShadow.CANTA.bit.TA25 == 0 );   // Wait for TA5 bit to be set..

就是说数据一直没有发送出来,发送应答寄存器没有置位,我现在一直想不通,求助TI人,谢谢。

Shaquille Wu:

楼主能告诉我你这个28335的CAN例程是在哪找到的吗?能给个链接吗?

我用TI中的例程ecan_a_to_b_xmit中的程序向上位机发送数据,虽然这个例程是两块dsp之间的数据传输,但是我个人理解的只要是配置为发送邮箱,并把数据写入   ECanaMboxes.MBOX25.MDL.all = data1;
ECanaMboxes.MBOX25.MDH.all = data2;中就可以向上位机发送数据。但是现在程序运行不起来一直停留在

do
        {
          ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
        } while(ECanaShadow.CANTA.bit.TA25 == 0 );   // Wait for TA5 bit to be set..

就是说数据一直没有发送出来,发送应答寄存器没有置位,我现在一直想不通,求助TI人,谢谢。

ruiping zhao:

回复 Shaquille Wu:

controlsuite里面有

赞(0)
未经允许不得转载:TI中文支持网 » F28335+周立功can+向上位机发送数据
分享到: 更多 (0)