(2)MSP430F5529 通用I/O口的设置

  初学,有什么错误或者不恰当的地方多多指正,大家一起交流学习。

  推荐一个好去处:TI官方MSP430交流社区http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55.aspx需要注册。在这里面提问题,都会有TI的在职工程师为你解答。

  第一章,先学习I/O。I/O的操作是最基本的,而且这些寄存器也都要牢牢掌握。MSP430难就难在它有大量的寄存器需要设置,虽然不是每个都必须掌握,但I/O控制寄存器我觉得肯定还要记住的。这个太基础了啊啊-_‘

  大家手里要常备一份原理图(PCB图),方便查线和配置引脚

一、通用I/O的简单操作(设置)

1.1  I/O的简介

特点:①多种复用和设置(即可控制是否输入、是否输出、是否接上拉电阻、是否接下拉电阻、是否可接受中断);

一般情况下,P1和P2都是具有中断能力的。从P1和P2接口的各个I/O管脚引入的中断可以独立的被使能并且设置为上升沿或者下降沿触发。对应的中断向量表分别为P1IV和P2IV,它们只能进行字操作,并且PAIV这个寄存器根本不存在。

③P1、P2可合为PA,P3、P4可合为PB,…PC、PD。所以P1为8位BCD 0x00,PA为16位BCD 0x0000。当进行字操作写入PA口时,所有的16位都被写入这个端口;当利用字节操作写入PA口的低字节时,高字节保持不变;

④由于430很多I/O和外围电路接线,所以这里常用位操作。如事先定义(接下来也会用到,先在此声明)BIT0=0X01、BIT1=0X02、BIT3=0X04…BIT7=0X80,那么将P1.1、P1.3的输出设为1的时候,就可以这样操作:P1OUT|=(BIT1+BIT3)。这样显得很清楚。

 ⑤没有用到的I/O,要统一拉低为好。此外,当读入的数据长短小于端口最大长度时,那些没有用到的位会被视零。

1.2   I/O的简单配置

430I/O的配置是用软件来实现的,是通过相应的配置寄存器来实现的。(用到某个I/O时,一定要先配置好该I/O,否则易出错)

1.2.1  I/O方向设定寄存器PXDIR

如设定P1.1和P1.2为输出状态,操作为: P1DIR |=(BIT1+BIT2)等价于PADIR |=(BIT1+BIT2)也等价于PADIR_L|=(BIT1+BIT2。

    拉高设定为输出,拉低设定为输入(默认)。

1.2.2  I/O输入设定寄存器PXIN

                    设定P1.1和P1.2的输入为低电平,操作为: P1IN &=~(BIT1+BIT2)。

1.2.3      I/O输出设定寄存器PXOUT

    ①当只用为简单的输出时:如设定P1.1和P1.2输出高电平,操作为: P1OUT |=(BIT1+BIT2)。

②如果该引脚为正常I/O功能,且当前已设定为输入方向,且上拉/下拉电阻寄存器是有效地。那么PXOUT可以用来配置上拉和下拉电阻

                                   低电平为下拉电阻;

                                   高电平为上拉电阻;

1.2.4  上拉/下拉电阻使能寄存器PXREN

低电平该寄存器为无效状态;

高电平该寄存器为有效状态;

       1.2.5  输出驱动能力设置寄存器PXDS

弱化驱动可以减弱电磁干扰EMI,全力驱动会增强电磁干扰。默认为减弱驱动。

低电平表示减弱的驱动(默认);

高电平表示全力的驱动;

1.2.6  功能选择寄存器PXSEL

用来声明该端口是要应用于外围电路的特殊功能(不决定输入输出方向),默认为低电平

低电平表示普通的I/O(默认);

高电平表示该引脚将有连接外围电路的特殊用途;

如:开发板初始化函数HAL_Board.c中有这样一句程序:

P5SEL |=(BIT2+BIT3)(=00001100)

这句话的意思就是声明P5.2和P5.3将有特殊用途,实际上这两个I/O接的是外部的高频时钟晶振(之后还要设定为输入状态才可以)。

此外需要注意的是,一旦某个I/O的PXSEL置高了,那么该引脚将不能再被用为中断引脚。

总结,简单的程序应用:

/*实现LED的闪烁*/LED位于每个触摸按键下方,具体接口请查询原理图

#include    <msp430.h>          该头文件内部包含430各个寄存器的配置情况

void main(void)

{

       WDTCTL=WDTPW+WDTHOLD;                       //关闭看门狗

       P1DIR|=(BIT0+BIT1+BIT2+BIT3+BIT4+BIT5);             //P1.0-P1.5方向为输出,BITX的定义在msp430.h

       P1OUT&=~(BIT0+BIT1+BIT2+BIT3+BIT4+BIT5);         //清零

       /*P1SEL=0X00;

  PXDS=0X00;默认*/

       int i=0,j=0;

       while(1)

       {

              if(i>5)

                     i=0;

              else

              {

                     switch(i)

                     {

                     case 0:P1OUT=0x01;break;

                     case 1:P1OUT=0x02;break;

                     case 2:P1OUT=0x04;break;

                     case 3:P1OUT=0x08;break;

                     case 4:P1OUT=0x10;break;

                     case 5:P1OUT=0x20;break;

                     }

              }

              i++;

              for(j=20000;j>0;j--);                               //延时

       }

}

 文章摘录于:http://blog.lehu.shu.edu.cn/879836630/A448899.html

时间: 2024-10-23 15:49:04

(2)MSP430F5529 通用I/O口的设置的相关文章

(3)MSP430F5529 通用I/O口的设置

这一部分讲外部中断. 看介绍再加弄懂程序才是王道 外部中断是MSP430优先级最低的中断而且是可屏蔽中断.用起来比较简单. 1.2.7  简单的端口中断(外部中断)   P1.P2的所有端口都具有中断能力,可以通过寄存器PxIFG,PxIE和PxIES来配置.其他端口则需参照具体的引脚说明书.所有的P1中断标志是最优先的(相比其它引脚的外部中断),其中P1IFG.0又最优. PXIV中断向量寄存器:只有P1IV和P2IV.最高优先级使能中断在P1IV寄存器中产生一个序号,这个数字会被程序计数器识

CC2541蓝牙学习——通用I/O口中断

学习目标:掌握中断使能寄存器IEN0.IEN1.IEN2,中断标志寄存器PxIFG.IRCON.IRCON2,端口中断触发沿控制寄存器PICTL CC2541有18个中断源,每个中断源都可以产生中断请求,这18个中断源如下 中断请求通过SFR寄存器IEN0.IEN1.IEN2使能或禁止,定义如下: 其中IEN0和IEN1可以位寻址,寄存器IEN2不可以位寻址 EA:1开总中断 IEN1.P0IE:P0端口中断使能 IEN2.P1IE:P1端口中断使能 IEN2.P2IE:P2端口中断使能 IEN

全新 Mac 安装指南(通用篇)(推荐设置、软件安装、推荐软件)

注:本文将会不定期维护与更新,并将第一时间更新在 Github 上,有需要的朋友请直接订阅该条 Issues:<全新 Mac 安装指南(通用篇)>. 在 Mac 电脑上只用 Windows 操作系统的同学请看到这里后直接绕道,呵呵. 爱好编程的朋友们浏览完此文后请继续参考阅读 <全新 Mac 安装指南(编程篇)>. 推荐设置 总的来说,Mac 系统不需要做什么特别的设置,但以下几条建议对逼格提升很有帮助. 1.设置语言为英文 因为很多软件和系统设置的叫法用英文更为统一,所以可以很好

【Unity】10.2 通用动画的导入和设置

分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 使用类人动画时,Mecanim 的强大之处最明显.但是,尽管没有 Avatar 系统和其他功能,非类人动画也仍然受Mecanim的支持. 在 Mecanim 术语中,将非类人动画称为通用动画 (Generic Animations). 二.添加通用动画的基本步骤 要使用通用动画,转到 FBX 导入器装置 (Rig) 选项卡,然后从动画类型 (Animation Type) 菜单中选择"通用 (Generic)&quo

通用权限管理系统数据权限设置功能解析

在权限管理系统中,数据权限是比较难的,在我们通用权限系统中,数据权限指的是用户基于某个权限域对某些基础数据的操作权限,如上图,公司管理这个菜单被定义是数据权限,表示某些人在公司管理是可指定访问哪些基础数据,这个要与应用结合.如下图,可以限制该9999xudeng003用户在公司管理页面只能管理其中的几个公司. 目前基于用户的数据权限BS的管理功能已完成,这个是权限系统最难开发的一部分. 下面是MVC控制器调的通用权限管理系统底层的方法: //---------------------------

STM32系列单片机IO口模式设置

STM32单片机的每组IO口都有4个32位配置寄存器用于配置GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR和GPIOx_PUPDR,2个32位数据寄存器用于配置输入和输出寄存器GPIOx_IDR和GPIOx_ODR,1个32位置位复位寄存器GPIOx_BSRR,1个32位锁定寄存器GPIOx_LCKR和2个32位复用功能选择寄存器GPIOx_AFRH和GPIOx_AFRL. GPIO的输出状态可以配置为推挽或开漏加上上拉或下拉.输出数据既可以来自输出数据寄存器,

北洋网络口打印机设置

步骤:1.按住走纸按钮,然后开机,查看打印机的IP地址 2.打开游览器,输入测试纸显示的IP地址,修改打印机IP地址 3.ping现在修改的IP地址,然后打印测试 打印机型号SN3C 80 ii 扩充: GP以太网打印机测试及设置工具,用于GP系列打印机的功能设置和测试程序,注意:网络中PC主机及网络接口打印机IP 地址不能重复. 需要下载Gainscha_Ethernet.zip安装包,然后安装 原文地址:http://blog.51cto.com/vbers/2149712

STM32学习笔记(五)——通用定时器计数延时

STM32定时器概述 STM32F40x系列总共最多有14个定时器,定时器分为三类:基本定时器.通用定时器和高级定时器.它们的都是通过计数来达到定时的目的,和51的定时器差不多,基本原理都是一样的,就是功能多了一些,这些计数器都是自动重新装载初值的,使用起来非常方便,而且计数时钟频率可以通过分频系数来设置.本文章将介绍使用定时器中断来控制LED间隔1s闪烁. 计数的时钟来源主要有四个: 内部时钟CK_INT 外部时钟模式1:外部输入脚TIx 外部时钟模式2:外部触发输入ETR,仅适用于 TIM2

uboot环境变量(设置bootargs向linux内核传递正确的参数)

这是我uboot的环境变量设置,在该设置下可以运行initram内核(从内存下载到nandflash再运行),但是运行nfs根文件系统的时候一直出错,各种错误.查看了很多资料后猜想应该是uboot传递给linux内核的参数有问题,也就是bootargs的设置有问题. #printenv bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 rootfstype=yaffs2 rw mem=64M bo