MSP430F5529入门(一)点亮LED
一、I/O口相关寄存器配置
//PXDIR 输出方向
P1DIR |=BIT1; //设置IO口的输出方向为 输出
P1DIR &=~ BIT1; //设置IO口的输出方向为 输入
//PXOUT 输出状态
P1OUT |= BIT1; //P1.1输出高电平
P1OUT &= ~BIT1; //P1.1输出低电平
//PXIN 输入状态
P1IN |= BIT1; //P1.1输出高电平
P1IN &= ~BIT1; //P1.1输出低电平
//PXREN 上拉电阻是否使能
P1REN |= BIT1; //使能上拉,I/O口作为输出状态一定上拉配置
P1REN &=~BIT1; // 默认下拉
//PXSEL 功能选择寄存器
P1SEL |=BIT1 ;//P1引脚复用第二功能
P1SEL &=~BIT1;//默认I/O口功能
二、寄存器配置闪烁LED
#include <msp430.h>
#define CPU_F ((double)1000000) //默认主频1MHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))//重新定义延时函数
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // 停止看门狗
P1DIR |= BIT0; //设置P1.0口为输出模式
while (1)
{
P1OUT |= BIT0; //P1.0输出高(LED1点亮)
delay_ms(1000); //延时1s左右,不是很精准
P1OUT &= ~BIT0; //P1.0输出低(LED1熄灭)
delay_ms(1000);
}
}
三、库函数配置闪烁LED
#include "driverlib.h"
#define CPU_F ((double)1000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
void main(void)
{
GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0); //设置IO口为输出
GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN7);
while(1)
{
GPIO_toggleOutputOnPin (GPIO_PORT_P1, GPIO_PIN0); // IO口反转
GPIO_toggleOutputOnPin (GPIO_PORT_P4, GPIO_PIN7);
}
}
四、总结
入门MSP430系列单片机第一课,为电赛准备,同大家一起学习,有问题欢迎一起交流!