MSP430FR6989系列教程 -- 第一章 点亮LED

今天开始跟大家一起分享MSP430FR6989的系列教程

教程用到的硬件平台:TI官方的MSP430FR6989 LaunchPad

编译器:IAR For MSP430。

大家可以在后台回复“MSP430FR6989”获取教程用到的资料以及程序源码。

废话不多说,直接上干货。

目录

1,MSP430FR6989的概述

2,基本运算符的回顾

3,寄存器配置IO口点亮LED


1,MSP430FR6989的概述

  • 高达 16MHz 的 16 位 RISC 架构

  • 优化的超低功耗模式

  • 高达128KB的FRAM

  • 五个16位定时器,7个捕捉/比较

  • 日历和闹钟功能的 RTC

  • 16位和32位CRC校验(CRC16、CRC32)

  • 16个外部通道的12位ADC

  • 集成 LCD 驱动器

  • 增强型串行通信(UART、IIC、SPI)

  • 灵活的时钟系统(DCO、VLO、LFXT、HFXT)

  • AES安全加密、ESI等等

图片

2,基本运算符的回顾

    对于寄存器的操作,大部分就是 &、|、~的操作,这里我们简单回顾一下。

与 & :与 相当于“乘”,任何数乘以0,都等于0,只有1与1才是1

    与是拉成0;a & 0x1f 就是把a的高三位拉成0,别的位不变。

            与0   会拉成0           与1   不变

图片

或 |  :或 相当于“加”,任何数加上1,都等于1,只有0或0才是0

或是拉成1;a  |  0x1f 就是把a的低五位拉成1,别的位不变。

              或1   会拉成1           或0   不变

图片

取反~:所有的位都进行 非 运算。

3,寄存器配置IO口点亮LED

       msp430的IO采用传统8位端口,每个IO口控制8个IO引脚。寄存器中的每一位对应一个IO引脚,实现该引脚的独立控制。如下:

图片

   

        寄存器PxDIR为方向控制寄存器,比如我们要控制P13口的方向为输出,我们可以直接操作寄存器  P1DIR |= 0x08;把第三位置1,别的位保持不变,这样可以实现P13引脚的独立控制。在官方头文件中,其实已经定义第三位BIT3=0x80;所以配置P13方向代码我们可以直接如下配置:

P1DIR |= BIT3;

图片

IO口的基础寄存器包括以下四个:

  • PxDIR :0--端口输出低电平,1--端口输出高电平。

  • PxIN    :0--端口输入低电平,1--端口输入高电平。

  • PxOUT:端口输入输出方向。0--输入,1--输出。

  • PxREN:0--禁止使能上下拉电阻,1--使能上下拉电阻。

                      PxOUT决定拉电阻是上拉还是下拉。

  IO口解锁:

    要想使配置完成的IO口生效, 必须从LPMx.5退出。在一个电源循环之后,IO引脚是被锁定在高阻状态下,必须由软件清零,解锁IO口配置。解锁寄存器如下:

图片

P1DIR |= BIT3;

开发板中的led部分原理图如下:

图片

我们要点亮LED,只需要P10和P97引脚置1即可。

 4,代码实现

#include "io430.h"
int main( void )
{
    unsigned int i;
    
    /* 关闭看门狗 */
    WDTCTL = WDTPW | WDTHOLD;
  
    P1DIR |= BIT0;              // 设置P10方向为输出
    P1OUT |= BIT0;              // P10输出为1,点亮LED1
    
    P9DIR |= BIT7;              // 设置P97方向为输出
    P9OUT |= BIT7;              // P97输出为1,点亮LED2
  
    PM5CTL0 &= ~LOCKLPM5;       // 使配置完成的IO口生效, 从LPMx.5退出
    while(1)
    {
        P9OUT |= BIT7;                  // 点亮LED2
        for(i = 0; i < 30000; i++);     // 延时作用
        P9OUT &= ~BIT7;                 // 关闭LED2
        for(i = 0; i < 30000; i++);     // 延时作用
    }
    return 0;
}

代码下载进去就可以看到LED1点亮,LED2闪烁。


文章中使用到的资料以及编写的例程,我已经上传至GitHub,有需要的可以自行下载。https://github.com/Aimny2020/MSP430FR6989​​​​​​​

最后,欢迎大家关注微信公众号『LemonTechnology』,查看单片机编程、实时操作系统、Linux系统编程、硬件电路设计等更多精彩内容。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值