MSP430f5438有12组通用IO分别是从1到J,能作为外部中断引脚的只有P1和P2两个引脚;对于控制寄存器有下列几种:
PxIN是输入寄存器,
PxOUT是输出寄存器
PxDIR是输入与输出方向配置寄存器
PxREn 是下拉下拉寄存器
PxDS 是驱动增强与减弱寄存器
PxSEL是功能选择寄存器
PxIES是中断触发方式寄存器
PxIE是中断允许寄存器
PxIFG是中断标志寄存器
中断配置如下:
/**********************************************************************/
//外部中断优先级没有软件配置。端口0最高,端口7最低
/**********************************************************************/
void out_interrupt()
{
PortDIR |=BIT0; //设置端口方向
PortIFG &=0xfe; //中断标志
PortIES |=BIT0; //中断触发方式
PortIE |=BIT0; //中断开发
PortREN |=BIT0;
P2OUT |=BIT0;
}
//中断服务程序如下:
#include "msp430f5438.h"
#include "init.h"
void main( void )
{
clk_init();
out_interrupt();
P5DIR |=BIT4;
_EINT();//编译器内部开中断
while(1);
}
#pragma vector=PORT2_VECTOR
__interrupt void Port2(void)
{
__delay_cycles(1000);
if((P2IN&0xff)!=0xff)
{
P5OUT ^=BIT4;
}
PortIFG &= ~BIT0; //中断标志
}
关键字:通用IO 外部中断 寄存器
引用地址:
学习通用IO与外部中断
推荐阅读最新更新时间:2024-11-12 23:00
STM8S之GPIO自学笔记
STM8S105C6T6 48个引脚 32KB Flash 封装:LQFP temp:-40~85 PA1~PA6,PB0~PB7,PC1~PC7,PD0~PD7,PE0~PE3,PE5~PE7,PG0,PG1, 一共38个通用I/O口。 GPIO寄存器 端口x输出数据寄存器(Px_ODR); 端口x输入数据寄存器(Px_IDR); 端口x输出数据方向(Px_DDR);0:输入模式 1:输出模式; 端口x控制寄存器1(Px_CR1); 当DDR=1;置0 模拟开漏输出;置1 推挽输出;(CR2位做输出摆率控制); 当DDR=0;置0 浮空输入;置1 上拉输入; 端口x控制寄存器2(Px_CR2); 当DDR=0;置0 禁止外部
[单片机]
STM32 GPIO 寄存器的配置
配置每组IO口的寄存器:(每一组一套寄存器) 1、两个32位的配置寄存器;GPIOx_CRL,GPIOx_CRH 2、两个32位的数据寄存器:GPIOx_IDR,GPIOx_ODR 3、一个32位置位/复位寄存器:GPIOx_BSRR 4、一个16位的复位寄存器GPIOx_BRR 5、一个32位的锁定寄存器GPIOx_LCKR 详解 : CRL和CRH控制IO口,是四个位控制一个口,所以要两个32位的来控制16个口 1、GPIOx_CRL:端口配置低寄存器: 每个口由四位控制,为MODE+CNF联合配置,具体模式在下图中。(输入要与输入对应,输出也要与输出对应) 具体对应输入输出配置表(对上图的详解): 2、GPIOx_
[单片机]
STM32 产品唯一身份标识寄存器(96位) 闪存容量寄存器
产品唯一的身份标识非常适合: ● 用来作为序列号(例如USB字符序列号或者其他的终端应用) ● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。 ● 用来激活带安全机制的自举过程 96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。 这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。 un=(*( u16 *)0x1FFFF7E0); //闪存容量寄存器 printf( The Flash size: %d KB\r\n
[单片机]
STM32单片机GPIO概述及相关寄存器
5.1 STM32单片机GPIO概述 STM32中每个IO口都有很多个作用,比如这次我们使用的STM32F103ZET6的PA0口,既可以作为IO口使用,还可以作为待机唤醒(WAKEUP),模拟输入(ADC功能)等。根据数据手册中列出的每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置成多种模式。 (1)输入浮空 (2)输入上拉 (3)输入下拉 (4)模拟输入 (5)开漏输出 (6)推挽式输出 (7)推挽式复用功能 (8)开漏复用功能 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/
[单片机]
STM32外部中断(基于STM32F103库函数版本)
说明:本文旨在详细解析STM32的外部中断,以实现按键触发外部中断。其中包含“编程流程”、“程序代码”、“代码解析”、“原理分析”、“小结”五部分。 一、编程流程 要实现STM32外部中断,按照基本流程来讲,初步的想法重点应该是端口配置、中断服务函数,具体可分为四部分: ①初始化GPIO; ②初始化EXTI; ③初始化NVIC; ④配置中断服务函数。 二、程序代码 /** * @brief GPIO Init structure definition( stm32f10x_gpio.h 库已包含) */ typedef struct { uint16_t GPIO_Pin; /*! Specifies
[单片机]
将PIC单片机的数据存储器RAM作为寄存器使用的教程
Pic 单片机,想必大家都比较熟悉。其中,pic 单片机简介、pic 单片机优势以及 pic 单片机不足等内容,皆是入门级知识。本文将向大家介绍 pic 单片机的高级应用——将 pic 单片机的数据存储器 RAM 用作寄存器,本文存在一定难度,望大家用心研读。 PIC16C5X 把数据存储器 RAM 都当作寄存器来使用以使寻址简单明洁,它们功能上可分为操作寄存器、I/O 寄存器、通用寄存器和特殊功用寄存器。它们的组织结构如下图所示:这些寄存器用代号 F0~F79 来表示。F0~F4 是操作寄存器,F5-F7 是 I /O 寄存器,其余为通用寄存器。特殊功用寄存器地址对用户不透明。 一、操作寄存器 1、F0 间址寄存
[单片机]
ATmega 16 单片机的USART的相关寄存器(十)
通用同步和异步串行接收器和转发器(USART)是一个高度灵活的串行通讯设备。主要特点为: 全双工操作(独立的串行接收和发送寄存器) 异步或同步操作 主机或从机提供时钟的同步操作 高精度的波特率发生器 支持5,6,7,8,或9个数据位和1个或2个停止位 硬件支持的奇偶校验操作 数据过速检测 帧错误检测 噪声滤波,包括错误的起始位检测,以及数字低通滤波器 三个独立的中断:发送结束中断,发送数据寄存器空中断,以及接收结束中断 多处理器通讯模式 倍速异步通讯模式 1.UDR USART I/O数据寄存器 USART发送数据缓冲寄存器和USART接收数据缓冲寄存器共享相同的I/O地址,称为USART数据寄存器或UDR。将数据写入UDR时实
[单片机]
STM32单片机----外部中断EXTI学习
可屏蔽中断和不可屏蔽中断: 按照是否可以被屏蔽,可将中断分为两大类:不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。CPU一般设置两根中断请求输入线:可屏蔽中断请求INTR(Interrupt Require)和不可屏蔽中断请求NMI(NonMaskable Interrupt)。对于可屏蔽中断,除了受本身的屏蔽位控制外,还都要受一个总的控制,即CPU标志寄存器中的中断允许标志位IF(Iinterrupt Flag)的控制,IF位为1,可以得到CPU的响应,否则,得不到响应。 GPIO口与EXTI外中断的映像图:
[单片机]