LM3S8962学习笔记之IO

拿到TILM3S8962的板子了,开始学习,ARM跟单片机还是有些区别的,就这个等级 ,库函数的调用用起来我刚开始还有些不太适应,闲话不说我跑的第一个程序贴上来加加水吧!就是个LED等闪烁的程序我在调用库函数和直接超作IO做了个对比,IO直接操作比库函数效率是高,但是库函数用起来还是比较方便,我在对IO布什很了解的情况下也可以自由操作,跟写PC端的程序有点像,哈哈!

#undef uselib

int main(void)
{
    volatile unsigned long ulLoop,key;

SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOF;//开端口F时钟使能
    ulLoop = SYSCTL_RCGC2_R;            //延时,稳定一下

#ifdef uselib
    GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_0,GPIO_DIR_MODE_OUT); //设置为输入端口
 GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_0, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);//设置所选GPIO端口指定管脚的驱动强度和类型
 GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_DIR_MODE_IN); //设置为输入端口
 GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);//设置所选GPIO端口指定管脚的驱动强度和类型

while(1){
    key = GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_1);
    if(key==0){
  GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_0,0x01);
        for(ulLoop = 0; ulLoop < 200000; ulLoop++)
        {
        }
        GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_0,0x00);
        for(ulLoop = 0; ulLoop < 200000; ulLoop++)
        {
        }
    }
    }
}
#else
  GPIO_PORTF_DIR_R = 0x01;  //配置F0为输出,F1为输入
     GPIO_PORTF_DEN_R = 0x03;  //配置成数字输入
  GPIO_PORTF_DR2R_R =0x00;  //驱动电流2ma
  GPIO_PORTF_PUR_R = 0x02;  //按键上拉

while(1){
    key = GPIO_PORTF_DATA_R;
    if(key==0){
        GPIO_PORTF_DATA_R |= 0x01;
        for(ulLoop = 0; ulLoop < 200000; ulLoop++)
        {
        }
        GPIO_PORTF_DATA_R &= ~(0x01);
        for(ulLoop = 0; ulLoop < 200000; ulLoop++)
        {
        }
    }
  }
}

#endif

博主
zjws_zx@163.com
鱼香茄子的 Blog
欢迎光临茄子的家   !