关于STM32的几种输入模式以及外部中断的配置

发布者:学海飘香最新更新时间:2017-09-13 来源: eefocus关键字:STM32  输入模式  外部中断  配置 手机看文章 扫描二维码
随时随地手机看文章

最近做毕业设计,需要用按键来触发外部中断。实验的时候是正常的,但是换了个核心板以及用上自己做的PCB电路板后,出现了一些问题。问题如下:

要求:将连接按键的IO口配置为上拉输入,按键一端接IO口,一端接地,即当按键按下后,该IO口会产生一个下降沿,触发下降沿中断。

问题:将相应的IO口配置好后,测了引脚的的电压,并不是3.3V左右,而是0.1V左右。于是猜想:

1. 外围电路对IO口产生了影响。

2. STM32内部上拉能力较弱,一次只能上拉一个IO口。


于是开始从这两个想法着手解决。首先第一个,很容易就排除了。将外围电路撤掉,我用的是杜邦线,直接拔掉测量引脚上的电压,依然是0.1V左右,于是第1个猜想排除。

第二个,查看万能的参考手册,发现每一个IO口都是有独立的驱动电路,这样第2个也排除了。

最后各种纠结,然后发现:在主函数的开头部分初始化的时候,我把初始化的那个函数给注释掉了。低级错误,见笑了。


现在总结一下:

STM32的输入有4种输入模式:

模拟输入    GPIO_AIN    

用于AD转换

浮空输入   GPIO_IN_FLOATING

引脚处于浮空模式,电平状态是不确定的。外部信号输入什么,IO口就是什么状态。

上拉输入   GPIO_IPU

防止IO口出现不确定的状态,比如,当IO口悬空时,就会通过内部的上拉电阻将该点钳位在高电平。

下拉输入   GPIO_IPD

功能与上拉电阻类似,防止IO口出现不确定的状态,比如,当IO口悬空时,就会通过内部的下拉电阻将该点钳位在低电平。 


STM32中空的I/O管脚是高电平还是低电平取决于具体情况。
1、IO端口复位后处于浮空状态,也就是其电平状态由外围电路决定。
2、STM32上电复位瞬间I/O口的电平状态默认是浮空输入,因此是高阻。做到低功耗。
3、STM32的IO管脚配置口默认为浮空输入,把选择权留给用户,这是一个很大的优势:一方面浮空输入确保不会出现用户不希望的默认电平(此时电平取决于用户的外围电路);另一方面降低了功耗,因为不管是上拉还是下拉都会有电流消耗。从另一个角度来看,不管I/O管脚的默认配置如何,还是需要在输出的管脚外加上拉或下拉,这是为了保证芯片上电期间和复位时输出的管脚始终处于已知的电平。
4、在没有任何操作的情况下,STM32通用推挽输出模式的引脚默认低电平,也就是有电的状态。所以在配置的时候通常会先把引脚的电平设置拉高,让电路不产生电流。有电到没电这一过程也就是引脚电平从低到高的过程。
5、STM32的I/O管脚有两种:TTL和CMOS,所有管脚都兼容TTL和CMOS电平。也就是说从输入识别电压上看,所有管脚不管是TTL管脚还是CMOS管脚都可以识别TTL或CMOS电平。


关键字:STM32  输入模式  外部中断  配置 引用地址:关于STM32的几种输入模式以及外部中断的配置

上一篇:STM32中断的配置
下一篇:stm32编程配置一个I/O为EXTI中断的步骤

推荐阅读最新更新时间:2024-03-16 15:36

STM32学习笔记(2)外部中断
一、中断 1.什么是中断 操作系统需要管理外设,但是外设的速度远远低于CPU的速度,所以我们需要一种机制来弥补这种速度鸿沟,提高CPU的效率。 为此我们引入了中断机制,让外设在需要操作系统处理外设相关事件的时候,能够主动通知操作系统,即当CPU收到中断或者异常的事件时,打断操作系统和应用的正常执行,暂停执行当前的程序或任务,让操作系统完成外设的相关处理,在完成对这个事件的处理后,再恢复操作系统和应用的正常执行。 举个栗子,当你在读文章时忽然来了一个电话,你会先去接电话,等电话挂断后你又接着回来读文章,接电话这一过程就是执行中断。 正是由于中断机制,计算机系统才能有条不紊地“同时”完成多个任务,中断机制实质上帮助提高了并
[单片机]
<font color='red'>STM32</font>学习笔记(2)<font color='red'>外部中断</font>
stm32 基于TIM1定时器的PWM输出
void PWM_TIM1(uint16_t arr,uint16_t psc) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //定时器TIM1时钟使能 TIM_DeInit(TIM1); //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Period =arr; //设置用来作为TIMx时钟频率出书的预分频值 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置时钟分割 TIM_TimeBaseStru
[单片机]
台积电将重新配置晶圆产能,以支持全球汽车工业
当前汽车芯片“荒”已迫使多家车企巨头停产,台积电表示,该公司正将应对影响汽车行业的芯片供应挑战作为首要任务,并通过其晶圆厂“加速”这些产品的生产。 台积电在一份声明中称:“台积电目前正通过我们的晶圆厂加速生产这些关键的汽车产品。在我们的产能正被充分利用以满足各个领域的需求时,台积电正重新配置我们的晶圆产能,以支持全球汽车工业。” 此前,美国伯恩斯坦研究公司预测,2021年全球范围内的汽车芯片短缺将造成多达450万辆汽车产量的损失,相当于全球汽车年产量的近5%。 波士顿咨询旗下智库Inverto也预计,汽车芯片的短缺对于汽车产业的影响仍将持续半年甚至三个季度。 该预测也得到了全球第二大零部件企业大陆集团的确认。大陆集
[嵌入式]
STM32 USART串口的使用方法和程序
通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半双工单线通信。 1、STM32固件库使用外围设备的主要思路 在STM32中,外围设备的配置思路比较固定。首先是使能相关的时钟,一方面是设备本身的时钟,另一方面如果设备通过IO口输出还需要使能IO口的时钟;最后如果对应的IO口是复用功能的IO口,则还必须使能AFIO的时钟。 其次是配置GPIO,GPIO的各种属性由硬件手册的AFIO一章详细规定,较为简单。 接着相关设备需要如果需要使用中断功能,必须先配置中断优先级,后文详述。 然后是配
[单片机]
stm32 EXTI对应的中断函数
EXTI0_IRQChannel 表示的是外部中断线EXTI0对应的中断函数。 以STM32F103VB系列为例,100pin, 一般我们通常使用的IO对应外部中断线如下: PA0,PB0,PC0,PD0,PE0 对应的是EXTI0中断线; 以此类推 到PA15,PB15,PC15,PD15,PE15对应EXTI5中断线。 EXTI0对应的中断函数为EXTI0_IRQChannel; EXTI1对应的中断函数为EXTI1_IRQChannel; EXTI2对应的中断函数为EXTI2_IRQChannel; EXTI3对应的中断函数为EXTI3_IRQChannel; EXTI4对应的中断函数为EXTI4_IRQChannel; E
[单片机]
如何连接到不同配置的图像采集卡和相机
连接到图像采集卡 open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘false’, CameraType, myBoard, -1, -1, AcqHandle) 使用操作符 open_framegrabber 打开与图像采集设备的连接时,主要参数是相应 HALCON 采集接口的名称。因此,您将获得一个所谓的句柄 (AcqHandle),通过它您可以访问图像采集设备,例如,在调用操作者grab_image 时。 图 2.1:a) 获取的图像;b) 处理过的图像(自动分
[机器人]
STM32-TIMx_OCMode的两种模式的理解
通用定时器可以输出四路互不影响的pwm信号,高级定时器可以输出三对互补pwm信号外加ch4通道,也就是一共七路。所以stm32一共可以生成4*5+7*2=30路pwm信号。但功能上有区别:通用定时器的pwm信号比较简单,就是普通的调节占空比调节频率;高级定时器的还带有互补输出功能,同时互补信号可以插入死区,也可以使能刹车功能,所以高级定时器的pwm通常用来控制电机的。 那么TIMx_ARR寄存器的值是怎样来确定pwm的频率的呢? TIM_Period(即是TIMx_ARR寄存器的值) 的大小实际上表示的是需要经过TIM_Period 次计数后才会发生一次更新或中断。接下来需要设置时钟预分频数TIM_Prescaler,这里有一个公
[单片机]
Stretch 选择Tensilica LX2 和HIFI2音频引擎增强其S6000系列软件可配置处理器
美国加州SANTA CLARA 2007年4月10日讯 – Tensilica 公司和 Stretch 公司日前共同宣布,美国加州Sunnyvale的Stretch 公司获得Tensilica授权在其下一代软件可配置处理器中采用Xtensa LX 处理器和HiFi2音频引擎。Stretch公司S6000系列处理器采用一个双发射 (dual issue) Xtensa LX处理器的VLIW配置,外加第二代Stretch的指令集扩展结构(ISEF),主要面向音频或视频应用,并可达到无与伦比的视频处理性能。 Stretch公司董事长兼执行总裁 Craig Lytle 表示: “Xtensa处理器通过实时地创造Tensilica指令扩展
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved