来了块开发板,没接触过,希望能驱动起来,就首先试一下驱动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); };
}