开发环境: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);//延时
}
}