拿到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
用户377235 2016-5-28 07:53
当年也弄过几天LM3S8962,TI的函数库写的很好,赞。可是,LM3S已经彻底死了。现在TI主推LM4F,平平淡淡
yhmcjc_804203354 2011-5-23 20:02
用户258758 2011-5-19 19:10
用户120337 2011-5-16 21:50