如何用STM32配置一个EXTIx中断线的I/O口

发布者:PeacefulSoul最新更新时间:2024-04-11 来源: elecfans关键字:STM32  I  O口 手机看文章 扫描二维码
随时随地手机看文章

配置一个I/O为EXTI中断的步骤:

GPIO_InitTypeDefGPIO_InitStructure;

EXTI_InitTypeDefEXTI_InitStructure;

NVIC_InitTypeDefNVIC_InitStructure;

//1.使能EXTIx线的时钟和第二功能AFIO时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA,ENABLE);


//NVIC_CONFIG();

//2.配置EXTIx线的中断优先级

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStructure);

//3.配置EXTIx中断线的I/O口

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource3);//4.选定要配置为EXTI的I/O口线

//5.EXTIx中断线的工作模式的配置

EXTI_InitStructure.EXTI_Line=EXTI_Line3;

EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd=ENABLE;

EXTI_Init(&EXTI_InitStructure);


关键字:STM32  I  O口 引用地址:如何用STM32配置一个EXTIx中断线的I/O口

上一篇:如何采用STM32配置SPI实现同步通信
下一篇:STM32F4的FPU性能的设置及要点

推荐阅读最新更新时间:2026-03-22 13:30

STM32操作 I/O 的步骤
先来总结一下 STM32 操作 I/O 口的步骤(以精英板为例): ① 使能 I/O 口时钟,调用函数为RCC_APB2PeriphClockCmd(); ② 初始化 I/O 参数,调用GPIO_Init(); ③ 操作 I/O 口 看了STM32操作 I/O 口的步骤,是不是一头雾水,因为我们以前学习51单片机的时候,根本没有这么麻烦,I/O 想输入就直接读,想输出就直接赋值,串口、AD转化、外部中断等等也都是想用就用,不需要单独配置时钟。 51单片机的这种做法确实很方便,不需要有乱七八糟的设置就能让芯片跑起来,但是随之带来的就是所谓的功耗问题。换句话来说就是一些资源根本用不上,但是芯片却还给它分配资源,即增加了芯片的负担,
[单片机]
如何模拟实现应用在数据采集系统的89C51单片机I/O串行通信?
目前普遍采用的MCS51 和PIC 系列单片机通常只有一个(或没有)UART异步串行通信接口,在应用系统中若需要多个串行接口(例如在多机通信系统中,主机既要和从机通信又要和终端通信)的情况下,通常的方法是扩展一片8251 或 8250 通用同步/异步接收发送芯片(USART),需额外占用单片机I/O 资源。 MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS
[单片机]
如何模拟实现应用在数据采集系统<font color='red'>中</font>的89C51单片机<font color='red'>I</font>/<font color='red'>O</font><font color='red'>口</font>串行通信?
STM32F103:SWJ调试端口设置成普通I/O
一、SWJ调试端口 STM32有两种程序调试接口(程序烧写口),具体如下: SWD调试接口: PA13、PA14共两个引脚。 JTAG调试接口: PA13、PA14、PA15、PB3、PB4共五个引脚。 单片机启动后,初始状态这五个引脚就默认是调试接口。 而实际使用中,一般只使用 SWCLK、SWDIO这两个引脚用做SW调试接口。 其余的三个引脚可以空出来,重新定义为普通I/O来使用。 如果需要将它们用作普通IO口,需要进行引脚复用,禁止调试功能。 二、SWJ调试端口设置成普通I/O口步骤 1. 配置复用时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE ); //配
[单片机]
STM32F103:SWJ调试端口设置成普通<font color='red'>I</font>/<font color='red'>O</font><font color='red'>口</font>
STM32F103标准库开发---Uart串口通信实验---I/O模拟串口通信----延时法
UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。 一、串口传输协议 1. 传输方式 串口通信的数据由发送设备通过自身的TXD接口传输到接收设备得RXD接口, 一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。 每一个字符的前面都有一位起始位(低电平),字符本身由8位数据位组成,接着字符后面是一位校验位(检验位可以是奇校验、偶校验或无校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位,停止位和空闲位都规定为高电平。具体如下图所示。 实际传输时每一位的信号宽度与波特率有关,波特
[单片机]
STM32F103标准库开发---Uart串口通信实验---<font color='red'>I</font>/<font color='red'>O</font><font color='red'>口</font>模拟串口通信----延时法
【51单片机】普通I/O模拟SPIC语言程序
89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //-----------------------函数声明,变量定义------------ #include #include sbit SCK=P1^0; // 将p1.0口模拟时钟输出 sbit MOSI=P1^1; // 将p1.1口模拟主机输出 sbit MISO=P1^2; // 将p1.1口模拟主机输入 sbit SS1=P1^3; // 将p1.1口模拟片选 #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; //-------------------
[单片机]
51单片机:外部I/O扩展实验
一、实验内容 MCS-51系列单片机对外部设备的访问(即I/O口输入/输出操作)的基本要求是“输入缓冲、输出锁存”。实验中开关量K8K1的输入经74LS244八位缓冲输入接口实现,74LS273作为锁存输出接口,控制L8L1八个发光二极管的亮灭。(数据总线连接P0端口) 二、仿真图 三、代码 C语言实现: #include reg52.h sbit com=P3^0; sbit wr=P3^6; //74ls273-CLK sbit rd=P3^7; //74ls244 void main() { while() //无限循环 { unsigned char temp; //定义一个
[单片机]
51单片机:外部<font color='red'>I</font>/<font color='red'>O</font><font color='red'>口</font>扩展实验
MSP430f5529 通用I/O的设置
1. I/O口的简介 特点: (1)多种复用和设置(即可控制是否输入、是否输出、是否接上下拉电阻、是否可接受中断) (2)一般情况下,P1和P2都具有中断能力的。从P1和P2接口的各个I/O管脚引入的中断可以独立的被使能并且设置为上升沿或者下降沿触发,对应的中断向量表分别为P1IV和P2IV,他们只能进行字操作,并且PAIV这个寄存器是不存在的。 (3)P1、P2可合为PA,P3、P4可合为PB…。所以P1为8位BCD 0X00,PA为16位BCD 0X0000。当进行字操作写入PA口时,所有的16位都被写入这个端口;当利用字节操作写入PA口的低字节时,高字节保持不变; (4)由于430很多I/O和外围电路接线,所以这
[单片机]
msp430单片机I/O的灌电流和拉电流的问题
数字输入/输出端口有下列特性: □ 每个输入/输出位都可以独立编程。 □ 允许任意组合输入、输出。 □ P1 和 P2 所有 8 个位都可以分别设置为中断。 □ 可以独立操作输入和输出数据寄存器。 □ 可以分别设置上拉或下拉电阻。 一般是数字电路中讲到这个问题。 当数字电路的输出端,输出低电平的时候,外接器件将把电流,“灌入”数字电路的输出端。 当数字电路的输出端,输出高电平的时候,外接器件将从数字电路的输出端,“拉出”电流。 当一个LED接在“数字电路的输出端”和电源之间,输出端输出低电平的时候发光,这个LED就是灌电流负载。 当一个LED接在“数字电路的输出端”和地之间,输出端输出高电平的时候发光,这LED
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved