拿到板子后,楼主我摸索了好几天,始终不知道这底层驱动怎么玩,后来无奈之下,只好用IAR来开发金刚狼了。 第一篇 利用IAR提供的底层驱动来实现IO口的基本控制。 1.1 输出高、底电平 首先打开IAR, ![]() ![]() 接下来就建立一个空的文档。 这个工程里面,包含了所有的芯片底层驱动,串口,日历,中断,串口等。 ![]() 打开这两个文件就可以学习关于IO口操作的程序了 ![]() 里面主要有 输出高低电平、反转、I/O口中断等。 在新建的文档下输入: 例程1: //跑马灯 #include "driverlib.h" void delay(unsigned int i) { while(i--); } void main(void) { //Stop WDT WDT_A_hold(WDT_A_BASE); //PA.x output GPIO_setAsOutputPin(GPIO_PORT_P1,0x01); GPIO_setAsOutputPin(GPIO_PORT_P4,0x40); /* * Disable the GPIO power-on default high-impedance mode to activate * previously configured port settings */ PMM_unlockLPM5(PMM_BASE);//不解锁不能操作I/O //Set all PA pins HI while(1) { GPIO_setOutputHighOnPin(GPIO_PORT_P1,0x01); GPIO_setOutputHighOnPin(GPIO_PORT_P4,0x40); delay(50000); GPIO_setOutputLowOnPin(GPIO_PORT_P1,0x01); GPIO_setOutputLowOnPin(GPIO_PORT_P4,0x40); delay(50000); } //Enter LPM4 w/interrupts enabled // __bis_SR_register(LPM4_bits + GIE); //For debugger // __no_operation(); } 例程2: //按键中断 按S1触发中断,进入中断后LED1反转 #include "driverlib.h" void main(void) { //Stop watchdog timer WDT_A_hold(WDT_A_BASE); //Set P1.0 to output direction GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN0 ); //Enable P1.1 internal resistance as pull-Up resistance GPIO_setAsInputPinWithPullUpresistor(GPIO_PORT_P1,GPIO_PIN1); //P1.1 interrupt enabled GPIO_enableInterrupt( GPIO_PORT_P1,GPIO_PIN1 ); //P1.1 Hi/Lo edge GPIO_interruptEdgeSelect( GPIO_PORT_P1, GPIO_PIN1, GPIO_HIGH_TO_LOW_TRANSITION ); //P1.1IFG cleared GPIO_clearInterruptFlag( GPIO_PORT_P1, GPIO_PIN1 ); /* * Disable the GPIO power-on default high-impedance mode to activate * previously configured port settings */ PMM_unlockLPM5(PMM_BASE); //Enter LPM4 w/interrupt __bis_SR_register(LPM4_bits + GIE); //For debugger __no_operation(); } //****************************************************************************** // //This is the PORT1_VECTOR interrupt vector service routine // //****************************************************************************** #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { //P1.0 = toggle GPIO_toggleOutputOnPin( GPIO_PORT_P1, GPIO_PIN0 ); //P1.4 IFG cleared GPIO_clearInterruptFlag( GPIO_PORT_P1, GPIO_PIN1 ); } 个人感悟: 摸索半天终于,弄明白这些东西了。不是自己的驱动,还是得耐心学。 相对于CCS,IAR还是比较方便。 此帖出自微控制器 MCU论坛 |
1.png (45.12 KB, 下载次数: 0)
2.png (32.33 KB, 下载次数: 0)
3.png (55.08 KB, 下载次数: 0)
5.png (9.15 KB, 下载次数: 0)
6.png (792 Bytes, 下载次数: 0)