注意1: 官网下载:Code Composer Studio ,我用的 Version: 9.3.0.00012 (应该是越新越好)
注意2:所有软件文件、工程文件均放在【纯英文/数字】目录下
注意3:官网下载:controlSUITE(如果出现打开空白,删除安装目录下的\ti\controlSUITE\eclipse\workspace\.metadata 中,.metadata 文件夹)
LED点灯步骤:
步骤1.新建空白的CCSproject
步骤2:添加【头文件(xx.c)】、【源文件(xx.h)】、【cmd文件(xx.cmd)】
文件来源:controlSUITE
步骤2.1:在工程中新建文件夹,用于放置各类文件。
右键选择你的工程
步骤2.2:打开【C:\ti\controlSUITE\device_support\F2837xS\v210】(具体看个人安装位置),把【头文件(xx.h)】放进【F2837xS_headers文件夹】,把【源文件(xx.c)】放进【F2837xS_common文件夹】,把cmd文件放进工程主目录
头文件位置1:C:\ti\controlSUITE\device_support\F2837xS\v210\F2837xS_headers\include,文件夹所有
头文件位置2:C:\ti\controlSUITE\device_support\F2837xS\v210\F2837xS_common\include,文件夹所有
源文件位置1:C:\ti\controlSUITE\device_support\F2837xS\v210\F2837xS_common\source,文件夹所有
源文件位置2:C:\ti\controlSUITE\device_support\F2837xS\v210\F2837xS_headers\source,文件夹所有
cmd文件位置1:C:\ti\controlSUITE\device_support\F2837xS\v210\F2837xS_headers\cmd,文件夹中的F2837xS_Headers_nonBIOS.cmd
步骤3:设置【properties】
步骤3.1:【properties】中添加【头文件】
步骤3.2:尝试build,如有报错则百度
步骤4:电路图 与 芯片技术手册(TMS320F2837xS Microcontrollers Technical Reference Manual )中的PIN复用表
如图所示,LED1由69号PIN控制,即33号GPIO。可在PIN复用表中找到该PIN具备哪些功能,如何启用某个功能,(或者把GPxMUX寄存器设置为相应的值,)
上图为—电路图
—
上图为—芯片技术手册—PIN复用表
步骤5:编写main
#include "F28x_Project.h"
#include "F2837xS_device.h"
#include "math.h"
void main(void)
{
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
//该指令为解决调用DELAY_US()函数会进入死循环中断的BUG;
InitSysCtrl();//初始化控制系统。
//1)关闭看门狗。2)初始化PLL,确定系统主时钟。3)初始化外设时钟。
DINT;//汇编指令:关闭中断
InitPieCtrl();//初始化pie控制寄存器
EALLOW;//汇编指令:受保护的寄存器可写入
IER = 0x0000;//关闭CPU中断并清除所有CPU中断信号
IFR = 0x0000;
EDIS;//汇编指令:受保护的寄存器禁止写入
InitPieVectTable();//初始化PIE
InitGpio(); //初始化GPIO
//以下寄存器配置
GPIO_SetupPinMux(33, GPIO_MUX_CPU1, 0);
//启用【第一个CPU】的【33号GPIO】的【第一个功能】
GPIO_SetupPinMux(34, GPIO_MUX_CPU1, 0);//
GPIO_SetupPinOptions(33, GPIO_OUTPUT, GPIO_OPENDRAIN);
//把【GPIO33】设置为【输出模式】+【开漏模式】
GPIO_SetupPinOptions(34, GPIO_OUTPUT, GPIO_PUSHPULL);
//把【GPIO34】设置为【输出模式】+【推挽模式】
/*
#define GPIO_PUSHPULL 0 推挽模式
#define GPIO_PULLUP (1 << 0) 上拉模式
#define GPIO_INVERT (1 << 1) 翻转模式
#define GPIO_OPENDRAIN (1 << 2) 开漏模式
#define GPIO_PULLUP|GPIO_ASYNC 上拉模式(不要让输入悬空)和异步模式
*/
for(;;)
{
DELAY_US(500000);//延时
GPIO_WritePin(33, 1);//输出高电平,灭
GPIO_WritePin(34, 1);//
DELAY_US(500000);//延时
GPIO_WritePin(33, 0);//输出低电平,亮
GPIO_WritePin(34, 0);//
}
}