第一范文网 - 专业文章范例文档资料分享平台

dsp调试can一点心得

来源:用户分享 时间:2020-06-17 本文由一切无所谓 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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; //使能所有接受和发送中断

ECanaShadow.CANMC.bit.CCR = 1; //cpu请求对scc的配置寄存器canbtc //和接收屏蔽寄存器进行写操作 do {

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

}while(ECanaShadow.CANES.bit.CCE != 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; ECanaShadow.CANMC.bit.CCR = 0; //配置完成 do {

ECanaShadow.CANES.all = ECanaRegs.CANES.all; }while(ECanaShadow.CANES.bit.CCE != 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; //使能所有中断

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

ECanaRegs.CANGIM.all = 0x3ff07;//全部使能,全局中断中断线1 EDIS;

PieCtrl.PIEIER9.bit.INTx6 = 1; PieCtrl.PIEIER9.bit.INTx5 = 1;

2:关于接收发送

成功接收到一个数据,会置位对应的RMP位,一定要注意,先清除RMP(对其写1)在读取邮箱数据

发送成功一个数据,会置位对应得TA位,对其写1进行清除。 3:关于中断线0和中断线1

邮箱中断和全局中断要设置到不同的中断线,比如邮箱中断在0,那么全局中断在1 邮箱中断级别位由CANMIL位决定,MIL=0为ECAN0INT MIL=1为ECAN1INT 全局中断级别位由CANGIM.GIL位决定 GIL=0 ECAN0INT GIL=1为ECAN1INT 邮箱中断只包括 发送成功和接受成功中断 全局中断包括各种错误状态

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新经管营销dsp调试can一点心得 全文阅读和word下载服务。

dsp调试can一点心得 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1081581.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top