3467|3

530

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

【TI首届低功耗设计大赛】如何利用IAR底层驱动操作GPIO [复制链接]

拿到板子后,楼主我摸索了好几天,始终不知道这底层驱动怎么玩,后来无奈之下,只好用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还是比较方便。


1.png (45.12 KB, 下载次数: 0)

1.png

2.png (32.33 KB, 下载次数: 0)

2.png

3.png (55.08 KB, 下载次数: 0)

3.png

5.png (9.15 KB, 下载次数: 0)

5.png

6.png (792 Bytes, 下载次数: 0)

6.png

newtest.zip

5.29 MB, 下载次数: 20

附加例程

最新回复

顶顶顶   详情 回复 发表于 2020-7-27 09:23
 
点赞 关注

回复
举报

530

帖子

4

TA的资源

一粒金砂(高级)

沙发
 
没人顶啊
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
我给你顶起来,确实是不是自己的库用着麻烦,还没有中文说明书,用起来一顿一顿的
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 

顶顶顶

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表