|
【TI首届低功耗设计大赛】MSP430 GPIO库函数操作
[复制链接]
之前有使用MDK的经验,在使用了MDK之后慢慢习惯了,在MDK下使用库函数来操作还是不错的,因此使用IAR的时候也想使用库函数操作,MCU太复杂的情况下操作寄存器就非常繁琐了。
在安装了IAR之后可以到如下目录下查找 库例程
D:\Program Files\IAR Systems\Embedded Workbench 7.0\430\examples\examples\MSP430FR5xx_6xx
我的IAR安装目录是在D:\Program Files\目录下,
GPIO是的工程是在
D:\Program Files\IAR Systems\Embedded Workbench 7.0\430\examples\examples\MSP430FR5xx_6xx\gpio
打开gpio.eww,可以看到工程目录,
我不太习惯这样操作,更习惯库操作,把库的文件分配改为我喜欢的格式了,
driverlib主要是驱动文件,user是用户自己编写的文件一般是GPIO INPUT OUTPUT INT UART这类文件 OUTPUT就是输出文件一般没有什么作用,
参考网友的程序,写了一段LED闪烁的代码,__delay_cycles(100000);作用是延时
主程序贴在这里
#include "driverlib.h"
void main(void)
{
//Stop watchdog timer
WDT_A_hold(WDT_A_BASE);//失能看门狗定时器
//Set P1.0 to output direction
//P1.0 配置为输出模式
//P1.0=LED2
GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);
//Set P4.5 to input direction
//P4.5设置为输入模式
//P4.5=KEY按键
GPIO_setAsInputPin(GPIO_PORT_P4,GPIO_PIN5);
//Enable P4.5 internal resistance as pull-Up resistance
//P4.5内部电阻设置为上拉电阻
GPIO_setAsInputPinWithPullUpresistor(GPIO_PORT_P4,GPIO_PIN5);
//P4.5 interrupt enabled
//P4.5引脚中断使能
GPIO_enableInterrupt(GPIO_PORT_P4,GPIO_PIN5);
//P4.5 Hi/Lo edge
//P4.5设置为高到低跳变触发中断程序
//P4.5下降沿产生中断
GPIO_interruptEdgeSelect(GPIO_PORT_P4,GPIO_PIN5,GPIO_HIGH_TO_LOW_TRANSITION);
//P4.5 IFG cleared
//P4.5中断标志位清除
GPIO_clearInterruptFlag(GPIO_PORT_P4,GPIO_PIN5);
/*
* Disable the GPIO power-on default high-impedance mode to activate
* previously configured port settings
*/
// 关闭上电端口默认输出高阻抗的功能,使能上电保持起始设置
PMM_unlockLPM5(PMM_BASE);
//Enter LPM4 w/interrupt
//Low Power Mode 4
//GIE为通用中断允许位
//GIE=1开全部中断
//__bis_SR_register(LPM4_bits + GIE);
GPIO_setOutputLowOnPin(GPIO_PORT_P1,GPIO_PIN0);
GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);
//GPIO_INPUT_PIN_HIGH
//
while (1)
{
//if (GPIO_INPUT_PIN_HIGH== GPIO_getInputPinValue(GPIO_PORT_P4,GPIO_PIN5))
//{
// //else reset
// GPIO_setOutputLowOnPin(GPIO_PORT_P1,GPIO_PIN0);
//}
//else
//{
// //if P1.4 set, set P1.0
// GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);
//}
GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); //翻转LED2
__delay_cycles(100000); // 该本征函数在 intrinsics.H 里:意思是延时 __cycles 个机器周期
// 经测试LED的闪烁频率为4.985HZ,所以这个延时函数接近延时了0.1s
}
}
工程文件上传
gpio_led_flash.rar
(4.26 MB, 下载次数: 10)
|
|