MSP-EXP430F5529LP学习记录(点灯,GPIO,按键)

开发环境:CCS

点灯

#include <msp430.h> 


/**
 * main.c
 */
int main(void)
{
    unsigned int i,j;

	WDTCTL = WDTPW | WDTHOLD;	//关闭看门狗
	
	P4DIR |=BIT7;

	P4OUT |=BIT7;

	P4OUT &=~BIT7;

	while(1)
	{
	    P4OUT |=BIT7;
	    for(i=60000;i>0;i--);
	    {
	        for(j=200;j>0;j--);
	    }

	    P4OUT &= ~BIT7;
	    for(i=60000;i>0;i--);
	    {
	        for(j=200;j>0;j--);
	    }

	}
}

实验现象:

 GPIO示例1:通过GPIO输出高低电平,使LED闪烁

#include "driverlib.h"

void main (void)
{
    WDT_A_hold(WDT_A_BASE);//关闭看门狗

    GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);//LED1:p1,0为输出
    GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN7);//LED2:p4,7为输出

    GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);//LED1点亮:p1,0为输出高电平
    GPIO_setOutputLowOnPin(GPIO_PORT_P4,GPIO_PIN7);//LED2熄灭:p4,7为输出低电平

while(1)
{
    GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN7);//取反4,7引脚的输出
    GPIO_toggleOutputOnPin(GPIO_PORT_P1,GPIO_PIN0);//取反1,0引脚的输出

    __delay_cycles(1000000);
}
}

实验现象:

 

 GPIO示例2:通过S1,S2两个按键控制两个LED灯

#include "driverlib.h"


void main (void)
{
    WDT_A_hold(WDT_A_BASE);//关闭看门狗

    GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);//LED1:p1,0为输出
    GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN7);//LED2:p4,7为输出

    GPIO_setOutputLowOnPin(GPIO_PORT_P1,GPIO_PIN0);//LED1熄灭:p1,0为输出低电平
    GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);//LED1点亮:p1,0为输出高电平

    GPIO_setOutputLowOnPin(GPIO_PORT_P4,GPIO_PIN7);//LED2熄灭:p4,7为输出低电平
    GPIO_setOutputHighOnPin(GPIO_PORT_P4,GPIO_PIN7);//LED2点亮:p4,7为输出高电平

    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P2,GPIO_PIN1);//p2.1为输入,上拉S1
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1);//p1.1为输入,上拉S2


while(1)
{
    if((GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2,GPIO_PIN1)) || (GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1,GPIO_PIN1)))
    {
    __delay_cycles(5000);//延时

    if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2,GPIO_PIN1))
    {
        while((GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2,GPIO_PIN1)));//等待按键释放

        GPIO_toggleOutputOnPin(GPIO_PORT_P1,GPIO_PIN0);//取反1,0引脚的输出
    }
    if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1,GPIO_PIN1))
    {
        while(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1,GPIO_PIN1));//等待按键释放

        GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN7);//取反4,7引脚的输出
    }

    }


    __delay_cycles(1000000);//延时

}

}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃橘子的橘猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值