文章目录

  • 一、MSP430 Digital I/O概述
  • 二、Digital IO的配置
    • 1. 输入功能
      • 1.1方向寄存器
      • 1.2上拉/下拉使能寄存器
      • 1.3输入状态寄存器
    • 2. 输出功能
      • 2.1输出寄存器
  • 三、外部中断
    • 四、总结

一、MSP430 Digital I/O概述

MSP430的Digital I/O中文名称叫做数字IO,我觉得和STM32的GPIO类似。MSP430F5529共有11个IO port ,每组port共有8个IO端口(0:7)。其中P1和P2两组IO具有外部中断功能。 IO端口的输入输出功能是永恒的主题,下面就来介绍一下MSP430的IO端口配置。

二、Digital IO的配置

1. 输入功能

1.1方向寄存器


这是一个非常重要的寄存器,用于选择IO端口是输入还是输出。

1.2上拉/下拉使能寄存器

当涉及到输入。那肯定离不开上拉输入和下拉输入,上图表明,通过方向寄存器和输出寄存器以及上下拉使能寄存器可以把IO端口配置成上拉和下拉数额u以及普通的输入(浮空输入).

1.3输入状态寄存器


在这个输入状态寄存器中,我们可以读取这个寄存器中的值,来查看输入的是高电平还是低电平

2. 输出功能

2.1输出寄存器


我们可以通过设置这个寄存器的值来输出高低电平
下面给出一段IO端口的代码,这段代码设置成IO输出模式,并输出低电平

void LED0_GPIO_Config(void)
{P1DIR|=BIT0;             //P1.0-P1.5方向为输出,BITX的定义在msp430.hP1OUT&=~BIT0;
}

三、外部中断

外部中断是IO端口的一个很重要的功能,下面就直接上代码,通过代码来学习外部中断的配置方法

    P2IE  |= BIT3;//使能外部中断,P2.3P2IES &=~ BIT3; //上升沿P2IFG &= ~ BIT3;P2REN |= BIT3;P2OUT &=~BIT3;

其中涉及到的寄存器有中断使能寄存器和中断触发边沿寄存器

四、总结

关于MSP430 IO端口部分就写到这里,以后有更深刻的理解会加上去。

MSP430学习总结(二)——GPIO相关推荐

  1. STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...

  2. STM32学习心得二十六:DAC数模转换实验

    记录一下,方便以后翻阅~ 主要内容: 1) DAC数模转换原理: 2) 寄存器和库函数介绍: 3) 相关实验代码解读. 实验功能:系统启动后,按WK_UP键,输出电压加200点,对应电压值200*3. ...

  3. 学习笔记二.矩阵按键

    #学习笔记二:GPIO的探索与矩阵按键 ##1.在配置cubemx时,对gpio的配置有开漏输出和推挽输出两种方式, ###这里有一篇文章(别人的文章)讲的很详细link戳这里跳转 通俗来讲,推挽输出 ...

  4. STM32学习心得二十四:内部温度传感器原理及实验

    记录一下,方便以后翻阅~ 主要内容: 1) STM32内部温度传感器概述: 2) 相关实验代码解读. 实验功能:系统启动后,实时将内部温度传感器的值传至串口助手上. 官方资料:<STM32中文参 ...

  5. HandsFree——OpenRE库学习(二)

    HandsFree--OpenRE库学习(二) Board类介绍 Board类对硬件进行抽象,封装了STM32F1和F4的底层配置函数,使得上层功能包的开发变得简洁. Board类的定义如下: cla ...

  6. 英飞凌TC264学习(二)外部中断

    英飞凌TC264学习(二)外部中断 一.外部中断说明: 1.256个向量第一个也就是第0号的中断向量无效.仅用来占位置.所以一共有255个向量,但是要占用256个向量的位置 2.向量表以优先级别排序数 ...

  7. 语义分割:基于openCV和深度学习(二)

    语义分割:基于openCV和深度学习(二) Semantic segmentation in images with OpenCV 开始吧-打开segment.py归档并插入以下代码: Semanti ...

  8. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  9. Mybatis底层原理学习(二):从源码角度分析一次查询操作过程

    在阅读这篇文章之前,建议先阅读一下我之前写的两篇文章,对理解这篇文章很有帮助,特别是Mybatis新手: 写给mybatis小白的入门指南 mybatis底层原理学习(一):SqlSessionFac ...

最新文章

  1. java static null,我们可以在Java中使用null对象调用静态方法吗?如果是这样,怎么样?...
  2. 鸿蒙开发-新建Ability与使用image-animator实现图帧动画
  3. 《DSP using MATLAB》示例Example7.20
  4. 文本标点符号在前面怎么改_这三个标点符号,为什么写错的人越来越多?
  5. python遍历获取一个类的所有子类
  6. 第三十五章 大唐工厂主
  7. 支持tls的tcp服务器,TCP+TLS
  8. Android中定时器的3种实现方法
  9. 顺序表的简单操作代码(c++实现)
  10. 友善的小精灵 Casper
  11. 无线投屏视频经过服务器吗,无线投屏方案
  12. 计算机硬盘隐,终极电脑磁盘隐藏方法大全
  13. 电商APP的流量及用户运营分析
  14. Flink SQL 流计算可视化 UI 平台
  15. hevc编码merge 模式
  16. Python语言的应用前景如何,应用方向有哪些。
  17. python绘制樱花洒落_Python:绘制樱花树
  18. RL(Chapter 3): Finite Markov Decision Processes (有限马尔可夫决策过程)
  19. 大厂app出海攻略|一个方法让app推广变现能力双效提升
  20. MMU简单处理TLB例外

热门文章

  1. 怎么用cmd命令编译执行java程序
  2. C++ malloc、智能指针、类型转换等(三)
  3. 苹果cms如何去除手机端漂浮广告教程
  4. 使用HTTP的GET请求做一个简单的天气预报
  5. 微信公众号注册显示法人信息不一致怎么办?
  6. a16z 游戏投资人:游戏制作人获得资金的多种途径
  7. 敲代码时如何快速移动光标_数控加工中心编程入门知识,半小时快速入门!超简洁明了!...
  8. 【高效开发工具系列】uTools介绍与使用
  9. 建筑安全生产许可证申请新申报
  10. Session伪造记录