引言
TMS320 F28x系列是德州仪器(TI)公司推出的浮点定点混合信号微处理器,广泛应用于工业控制、电机驱动、信号处理等领域。本文将深入解析TMS320 F28x系列的特点,并详细解读其源码,同时提供免费下载指南。
TMS320 F28x系列简介
1. 产品特点
- 高性能浮点运算单元:F28x系列具备强大的浮点运算能力,适用于需要高精度浮点运算的应用场景。
- 高集成度:集成了丰富的片上资源,如ADC、DAC、定时器、事件管理器等,简化系统设计。
- 丰富的通信接口:支持CAN、SPI、I2C等通信接口,方便与其他设备进行数据交换。
2. 应用领域
- 工业控制:如电机控制、过程控制、变频调速等。
- 信号处理:如音频处理、视频处理、通信系统等。
- 消费电子:如智能家居、可穿戴设备等。
源码深度解读
1. 源码结构
TMS320 F28x系列的源码通常包含以下文件类型:
- .c:C语言源文件
- .h:头文件
- .cfg:配置文件
- .cmd:指令文件
2. 代码示例
以下是一个简单的F28x系列代码示例,用于初始化定时器:
”`c #include “F28x_Project.h” // 包含头文件
void InitTimer(void) {
// 设置定时器周期
TimerLoadRegs.TCR.all = 0x0;
TimerLoadRegs.TCR.bit.TSS = 1; // 设置定时器停止
// 设置定时器周期
TimerLoadRegs.TCR.bit.TSS = 0; // 启动定时器
TimerLoadRegs.TLR.bit.L = 1000000; // 设置定时器周期为1秒
// 启用定时器中断
TimerIntRegs.TINT.bit.TINT = 1;
}
void main(void) {
// 初始化硬件
InitSysCtrl();
InitEPwm1GblCtrl();
InitEPwm1Ctrl();
InitEPwm1Gen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEPwm1PhsGen();
InitEPwm1PhsCtrl();
InitEPwm1Ctrl();
InitEPwm1Shadow();
InitEPwm1Regs();
InitEP
