TMS320F2812 CAN通信初始化与例程

需积分: 9 5 下载量 45 浏览量 更新于2024-11-13 收藏 9KB TXT 举报
"TMS320F2812_CAN是一个关于TMS320F2812微控制器的CAN(Controller Area Network)通信例程。该例程包括了500Kbps的传输速率配置和静默模式设置。" 在微控制器应用中,CAN总线是一种广泛应用的串行通信协议,特别适合于车辆和工业自动化中的多节点通信。TMS320F2812是Texas Instruments(TI)公司生产的一款高性能浮点数字信号处理器,它内置了CAN接口,能够方便地实现CAN通信。 在这个例程中,我们首先看到一些包含的头文件,如"DSP28_Device.h",这是TI为TMS320F2812提供的一组系统控制相关的定义和函数。接下来是一些全局变量声明,如`j`, `i`, `temp`, `can_rev1`, `can_rev2`, `can_rev3`,它们可能用于存储数据或作为循环计数器。 在例程的初始化部分,有多个函数被调用: 1. `InitSysCtrl()`:这个函数用于设置系统的时钟和其他基本控制,确保微控制器能正常工作。 2. `DINT`:这个指令用于关闭中断,防止在初始化过程中发生意外的中断事件。 3. `InitPieCtrl()` 和 `InitPieVectTable()`:这两个函数与中断处理有关,`InitPieCtrl()` 初始化外围中断控制器(Peripheral Interrupt Controller, PIE),`InitPieVectTable()` 配置中断向量表,使得处理器知道如何响应特定的中断事件。 4. `InitECan()`:这是CAN模块的初始化函数,它将设置CAN控制器的参数,如波特率、接收和发送邮箱等。 在主函数`main()`中,我们看到对中断处理的配置,例如: - `PieCtrlRegs.PIEIER9.bit.INTx5=1;` 这行代码启用了ECAN0中断,即中断9.5。 - `IER=IER|0x0100;` 启用CPU的中断9。 - `EINT;` 和 `ERTM;` 分别开启全局中断和实时监控模式。 最后,`InitECan()`函数的调用是关键,它将设置CAN的相关参数,如配置MBOX0和MBOX15作为接收和发送邮箱,以及设置500Kbps的波特率和静默模式。在实际应用中,用户可能会根据具体需求修改这些参数。 这个例程为使用TMS320F2812进行CAN通信提供了基础框架,开发者可以通过它了解如何配置和操作微控制器的CAN接口,以便进行更复杂的通信任务。