输入捕获时,GPIO引脚的输入方式如何设置?

问题引出:在正点原子的“输入捕获试验”中,目的是捕获高电平的持续时间,也就是捕获按键WK_UP的按下时间。在外围电路中,按下WK_UP,PA0是高电平。

    按照《STM32中文参考手册》8.1.11外设的GPIO配置要求,需要把PA0配置为浮空输入。如图所示:

但是在例程代码里把PA0配置为下拉输入。结果:配置为下拉输入,程序正常运行;配置为浮空输入,程序无法运行。

疑问解答

我们现在要捕捉的信号只有高电平,没有低电平,并且外围电路也没加下拉。要捕获高电平,输入引脚平时应该为低电平。

PA0设置为浮空的时候,有1.几伏不确定的电平,单片机也认为是高电平,和按键按下的高电平没有区分开,捕获不到上升沿。

PA0设置为下拉输入,平时PA0被内部强制下拉为低电平,按下按键,PA0为高电平,能捕获到上升沿。

引申:什么时候可以用浮空输入?

当捕获方波信号的时候,应该用浮空输入,不能用下拉输入。因为方波信号本身既有高电平也有低电平,强制下拉为低电平会影响方波信号。

总结:

捕获发生在上升沿或者下降沿,如果没有上升沿和下降沿,就无法发生捕获。被捕捉的信号本身没有上升沿或下降沿,要通过IO口输入设置造出上升沿或下降沿,被捕捉信号本身有上升沿或下降沿的,IO口设置为浮空输入即可。

浮空输入理解:

http://www.openedv.com/thread-21980-1-1.html

http://www.openedv.com/forum.php?mod=viewthread&tid=424&extra=&page=1

引脚设置为浮空输入,输入信号完全由外部决定,包括平时和输入时。上拉输入,平时为高电平(内部决定);下拉输入,平时为低电平(内部决定)。上下拉输入,只有在信号输入的时候,引脚状态才由外部决定。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器芯片,它提供了多个高速定器,用于测量和捕获外部信号的间。下面是关于如何设置STM32F103C8T6的定输入捕获的详细步骤: 1. 配置GPIO引脚:首先,选择一个GPIO引脚作为输入捕获引脚,并将其设置输入模式。根据需要,可以使用GPIOA、GPIOB等引脚。 2. 配置定器:选择一个合适的定器,并配置为输入捕获模式。STM32F103C8T6具有多个定器,例如TIM1、TIM2等,选择适合需求的定器。配置定器的钟源、预分频因子、计数模式等参数。 3. 配置输入捕获通道:定器具有多个输入捕获通道,每个通道可以捕获一个外部信号的间。选择一个通道,并将其配置为输入捕获模式。 4. 配置输入捕获触发条件:选择外部信号触发输入捕获的条件。可以选择上升沿、下降沿或双边沿触发。 5. 启动定器和输入捕获:通过设置相关寄存器,启动定器和输入捕获功能。 6. 读取输入捕获值:当外部信号满足触发条件输入捕获将记录间值。通过读取相关寄存器,获取输入捕获间值。 以上是STM32F103C8T6定输入捕获的基本设置步骤。根据需要,可以进一步设置中断功能、选择捕获模式(例如连续捕获模式)等。在实际应用中,还可以根据具体需求进行参数的优化和调整。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值