(一)GPIO
(一)GPIO
一、MSP430单片机端口概述
(1)端口P1和P2
P1和P2端口具有中断能力。从P1和P2端口的各个I/O引脚引入的中断可以独立地被使能,并且被设置为上升沿或者下降沿触发中断。所有P1端口的I/O引脚的中断都来源于同一个中断向量PORT1_VECTOR。同理,P2端口的中断源都来源于另一个中断向量PORT2_VECTOR。
可以对每个独立的端口进行字节访问,或者将两个结合起来进行字访问。端口组合P1和P2、P3和P4、P5和P6、P7和P8可结合起来称为PA、PB、PC和PD端口。当进行字操作写入PA口时,所有的16位数据都被写入这个端口;利用字节操作写入PA端口低字节时,高字节保持不变;利用字节指令写入PA端口的高字节时,低字节保持不变。其他端口也是一样。当写入的数据长度小于端口的最大长度时,那些没有用到的位保持不变。应用这个规则来访问所有端口,除了中断向量寄存器P1IV和P2IV,它们只能进行字节操作。
(2)其他端口
这些端口没有外部中断能力,其余功能与P1、P2端口一样,能实现输入/输出功能和外围模块功能。每个端口有6个寄存器供用户使用,用户可通过这6个寄存器对它们进行访问和控制。每个端口的6个寄存器分别为:输入寄存器(PxIN)、输出寄存器(PxOUT)、方向选择寄存器(PxDIR)、输出驱动能力调节寄存器(PxDS)、上拉/下拉电阻使能寄存器(PxREN)和功能选择寄存器(PxSEL)。具体用法同P1和P2端口。
二、GPIO的API
(1)配置IO口模式的函数
1 | /*输入输出*/ |
(2)外部中断相关函数
1 | GPIO_enableInterrupt(uint8_t selectedPort, uint16_t selectedPins); |
edgeSelect包括
1 | //specifies what transition sets the interrupt flag Valid values are: |
(3)控制GPIO输出/读取输入
1 | GPIO_setOutputHighOnPin(uint8_t selectedPort, uint16_t selectedPins); |
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.