来了块开发板,没接触过,希望能驱动起来,就首先试一下驱动LED,没想到刚开始建好工程问题就来了
使用GPIO驱动,首先想到的是关于GPIO的头文件gpio.h,事实上这个还不够,还需要设置一下系统的配置,只有系统这个总开关打开了,后面的驱动才可行,于是就加入了sysctl.h,当然这也是这也是不够的,因为这些头文件里面也包含了其他头文件,这时就需要一个集成库来帮助我们编译成功,所以找到了driverlib-cm4f.lib,加载了进来,实质上我把代码写了试了一下,还是编译不通过,报错就是说那几个变量没有定义,我想这一定是调用的头文件里面包含有集成库里面没有的变量,也是我跑到库文件里面搜索编译不错来的关键字,其中hw_types.h,hw_memmap.h包含我们的关键字的定义,不用说,立刻加载,编译通过
//#define tBoolean int
//#define GPIO_PORTF_BASE 0 #include "lib/inc/hw_types.h"
//#include "lib/interrupt.h"
#include "lib/gpio.h"
//#include "lib/inc/hw_ints.h"
#include "lib/inc/hw_memmap.h"
//#include "lib/inc/hw_types.h"
//#include "lib/debug.h"
//#include "gpio.h"
//#include "pwm.h"
//#include "lib/gpio.h"
//#include "lib/interrupt.h"
//#include "sysctl.h"
//#include "lib/hw_gpio.h"
//#include "lib/inc/lm4f120h5qr.h"
#include "lib/sysctl.h"
//#include "lib/gpio.h"
int main()
{
//SysCtlClockSet(SYSCTL_SYSDIV_32);
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_0|GPIO_PIN_0|GPIO_PIN_0|GPIO_PIN_1,GPIO_STRENGTH_8MA,GPIO_PIN_TYPE_OD);
GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_DIR_MODE_OUT);
//SysCtlGPIOAHBEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_1);
//GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,2);
while(1)
{
//GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_1,0);
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,2);
SysCtlDelay (250*SysCtlClockGet ()/3000);
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0);
SysCtlDelay (250*SysCtlClockGet ()/3000);
};
}