DSP28335 CAN通讯程序 中文说明.doc

DSP28335 CAN通讯程序 中文说明.doc

ID:51117476

大小:24.27 KB

页数:8页

时间:2020-03-18

DSP28335 CAN通讯程序 中文说明.doc_第1页
DSP28335 CAN通讯程序 中文说明.doc_第2页
DSP28335 CAN通讯程序 中文说明.doc_第3页
DSP28335 CAN通讯程序 中文说明.doc_第4页
DSP28335 CAN通讯程序 中文说明.doc_第5页
资源描述:

《DSP28335 CAN通讯程序 中文说明.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、#include"DSP2833x_Device.h"//DSP2833xHeaderfileIncludeFile#include"DSP2833x_Examples.h"//DSP2833xExamplesIncludeFile//Prototypestatementsforfunctionsfoundwithinthisfile.voidmailbox_check(int32T1,int32T2,int32T3);voidmailbox_read(int16i);//GlobalvariableforthisexampleUint32ErrorCount;Uint

2、32PassCount;Uint32MessageReceivedCount;Uint32TestMbox1=0;Uint32TestMbox2=0;Uint32TestMbox3=0;voidmain(void){Uint16j;//eCAN控制寄存器需要使用32位的读/写访问。因此,为此示例创建一组影子寄存器。这些影子寄存器将用于确保访问是32位而不是16位。structECAN_REGSECanbShadow;//步骤1.初始化系统控制:PLL,看门狗,启用外设时钟。该示例功能可在DSP2833x_SysCtrl.c文件中找到。InitSysCtrl();//步骤

3、2.初始化GPIO:在DSP2833xGpio.c文件中找到该示例函数,并说明如何将GPIO设置为默认状态。//InitGpio();//Skippedforthisexample//在这个例子中,使用GPIO寄存器在这里配置CAN引脚。这个函数在DSP2833x_ECan.c中找到InitECanGpio();//步骤3。清除所有中断并初始化PIE矢量表:禁用CPU中断DINT;//将PIE控制寄存器初始化为默认状态。默认状态是禁止所有的PIE中断并清除标志。这个函数可以在DSP2833x_PieCtrl.c文件中找到。InitPieCtrl();//禁用CPU中断并

4、清除所有CPU中断标志:IER=0x0000;IFR=0x0000;//InitializethePIEvectortablewithpointerstotheshellInterrupt//ServiceRoutines(ISR).//Thiswillpopulatetheentiretable,eveniftheinterrupt//isnotusedinthisexample.Thisisusefulfordebugpurposes.//TheshellISRroutinesarefoundinDSP2833x_DefaultIsr.c.//Thisfunctio

5、nisfoundinDSP2833x_PieVect.c.InitPieVectTable();//步骤4.初始化所有器件外设:此功能可在DSP2833x_InitPeripherals.c中找到.//InitPeripherals();//Notrequiredforthisexample//第5步。用户特定的代码,启用中断:MessageReceivedCount=0;ErrorCount=0;PassCount=0;//eCAN控制寄存器需要32位访问。如果要写入单个位,编译器可能会将此访问分解为16位访问。此处介绍的一种解决方案是使用影子寄存器来强制32位访问。

6、//将整个寄存器读入一个影子寄存器。这个访问将是32位。更改所需的位并将其值复制到32位写入的eCAN寄存器。//为eCAN传输配置eCANRX和TX引脚EALLOW;ECanbShadow.CANTIOC.all=ECanbRegs.CANTIOC.all;//eCANI/O控制寄存器ECanbShadow.CANTIOC.bit.TXFUNC=1;//CANTX引脚用于CAN发送功能ECanbRegs.CANTIOC.all=ECanbShadow.CANTIOC.all;ECanbShadow.CANRIOC.all=ECanbRegs.CANRIOC.all;/

7、/eCANI/O控制寄存器ECanbShadow.CANRIOC.bit.RXFUNC=1;//CANRX引脚用于CAN发送功能ECanbRegs.CANRIOC.all=ECanbShadow.CANRIOC.all;EDIS;//禁用所有的邮箱。//因为写入整个寄存器(而不是一个位域),影子寄存器是不需要的。ECanbRegs.CANME.all=0;//邮箱激活寄存器:激活或者屏蔽独立的邮箱//邮箱可以一次写入16位或32位。写入TRANSMIT邮箱的MSGID字段MBOX0-15。ECanbMboxes.MBOX0.MSGID.a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。