dsp调试can一点心得

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

dsp调试can一点心得

调试的过程也就是学习的过程,无前人领路,只有自己摸索,

不免要耗费更多的时间和精力,从看书到调试到完全调通,用了差不多一星期的时间,当然不是全满,嘿嘿,偶尔还是要玩玩,在这里总结一下,脑子不好用,日后必定就忘记了这宝贵的经历。

1:如何配置can的问题

首先要按照书上所讲的做基本配置,(ECanaShadow == ECanaRegs)

GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6 = 1; //定义为can功能

GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7 = 1; //定义为can功能ECanaShadow.CANTIOC.bit.TXFUNC = 1; //定义为can发送功能

ECanaShadow.CANRIOC.bit.RXFUNC = 1; //定义为can接收功能

然后再不使能邮箱的情况下作如下设置:ECanaRegs.CANME.all = 0; //不使能邮箱ECanaRegs.CANMD.all = 0xFFFF0000; /*0~15 is TX,16~31 is RX*/

设置邮箱ID号:

/*发送邮箱的ID号*/

ECanaMboxes.MBOX0.MID.all = 0xa0000000; //mid.aam=1 自动应答模式ECanaMboxes.MBOX1.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX2.MID.all = 0x9555AAA2;

ECanaMboxes.MBOX3.MID.all = 0x9555AAA3;

ECanaMboxes.MBOX4.MID.all = 0x9555AAA4;

ECanaMboxes.MBOX5.MID.all = 0x9555AAA5;

ECanaMboxes.MBOX6.MID.all = 0x9555AAA6;

ECanaMboxes.MBOX7.MID.all = 0x9555AAA7;

ECanaMboxes.MBOX8.MID.all = 0x9555AAA8;

ECanaMboxes.MBOX9.MID.all = 0x9555AAA9;

ECanaMboxes.MBOX10.MID.all = 0x9555AAAA;

ECanaMboxes.MBOX11.MID.all = 0x9555AAAB;

ECanaMboxes.MBOX12.MID.all = 0x9555AAAC;

ECanaMboxes.MBOX13.MID.all = 0x9555AAAD;

ECanaMboxes.MBOX14.MID.all = 0x9555AAAE;

ECanaMboxes.MBOX15.MID.all = 0x9555AAAF;

/*接收邮箱的ID号*/

ECanaMboxes.MBOX16.MID.all = 0x80000000;

ECanaMboxes.MBOX17.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX18.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX19.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX20.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX21.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX22.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX23.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX24.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX25.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX26.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX27.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX28.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX29.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX30.MID.all = 0x9555AAA1;

ECanaMboxes.MBOX31.MID.all = 0x9555AAA1;

在这里,邮箱号可以自己随便设定,就是一个标识符,要注意的是,该MID寄存器种地30~31位有特殊含义,参照书上所讲设定。

/*32个邮箱使能*/

ECanaRegs.CANME.all = 0xFFFFFFFF;

ECanaRegs.CANMIM.all = 0xFFFFffff; //使能所有接受和发送中断R = 1; //cpu请求对scc的配置寄存器canbtc

//和接收屏蔽寄存器进行写操作

do

{

ECanaShadow.CANES.all = ECanaRegs.CANES.all; //

}while(E != 1); //如果拒绝cpu对配置寄存器进行写操作

设定波特率:

EALLOW;

/*(BRPREG+1)=10 feeds a 150MHz CAN clock*/

ECanaShadow.CANBTC.bit.BRP = 9;

/*150/10=15*/

ECanaShadow.CANBTC.bit.TSEG2 = 5;

ECanaShadow.CANBTC.bit.TSEG1 = 7;

ECanaRegs.CANBTC.all = ECanaShadow.CANBTC.all;

R = 0; //配置完成

do

{

ECanaShadow.CANES.all = ECanaRegs.CANES.all;

}while(E != 0);

EALLOW;

ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;

ECanaShadow.CANMC.bit.STM = 0; //1自检模式 0普通模式

ECanaShadow.CANMC.bit.SCM = 1; //选择ecan模式

ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;

EDIS;

EALLOW;

ECanaRegs.CANMIM.all = 0xFFFFffff;

ECanaRegs.CANMIL.all = 0; //在中断线0上产生邮箱中断

ECanaRegs.CANGIF0.all = 0xFFFFFFFF; //全局中断标志寄存器

ECanaRegs.CANGIF1.all = 0xFFFFFFFF; //全局中断标志寄存器

ECanaRegs.CANGIM.bit.I0EN = 1; //使能所有中断

相关文档
最新文档