搜索
bottom↓
回复: 21
打印 上一主题 下一主题

求助:无法循环读取stm32 引脚输入电平值

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2024-5-3 16:19:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
需要在主程序循环读取引脚输入电平,执行LED点亮和熄灭,现在问题:引脚电平变化led无动作,已确认led点亮和熄灭程序没问题,请教大侠指点,谢谢。       


while (1)
        {

        if(GPIO_ReadInputDataBit(GPIOE,2)==0 )
        {
                LED1_ON;
        }
        if(GPIO_ReadInputDataBit(GPIOE,2)==1 )
        {
                LED1_OFF;
        }
        }

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入31汤圆

2
发表于 2024-5-3 16:59:01 | 只看该作者
那就是获取管脚状态有问题呗

出1310入193汤圆

3
发表于 2024-5-3 17:20:09 来自手机 | 只看该作者
io口变换频率是多少?代码就仅仅这一段还是有其他中断函数?

出0入0汤圆

4
 楼主| 发表于 2024-5-3 17:32:56 来自手机 | 只看该作者
是的,不执行if里面程序

出0入0汤圆

5
 楼主| 发表于 2024-5-3 17:33:52 来自手机 | 只看该作者
lb0857 发表于 2024-5-3 17:20
io口变换频率是多少?代码就仅仅这一段还是有其他中断函数?
(引用自3楼)

变换频率在几秒钟,没有开中断

出0入984汤圆

6
发表于 2024-5-3 18:00:49 | 只看该作者
确定有PEx系列引脚吗,100pin开始的stm32上才有

PE引脚时钟初始化了吗

出1310入193汤圆

7
发表于 2024-5-3 18:25:20 来自手机 | 只看该作者
楼上说的估计就是问题所在
越是稀奇古怪问题,越是疏忽了基本因素而造成。

出0入0汤圆

8
 楼主| 发表于 2024-5-3 18:52:49 | 只看该作者
Himem 发表于 2024-5-3 18:00
确定有PEx系列引脚吗,100pin开始的stm32上才有

PE引脚时钟初始化了吗
(引用自6楼)


用的144引脚芯片,端口时钟打开了,引脚速率需要设置吗?

出0入1209汤圆

9
发表于 2024-5-3 19:17:43 | 只看该作者
目测楼主是初学,狠狠心直接上hal库吧。各种优点。缺点微不足道

出0入0汤圆

10
 楼主| 发表于 2024-5-3 19:17:49 | 只看该作者
现在的情况是:if((GPIO_ReadInputDataBit(GPIOA,0))==0 )能检测到并执行,但是if((GPIO_ReadInputDataBit(GPIOA,0))==1)检测不到
               

出0入984汤圆

11
发表于 2024-5-3 19:51:06 | 只看该作者
本帖最后由 Himem 于 2024-5-3 19:52 编辑

GPIO_Pin_2 != 2
GPIO_Pin_0 != 0

出0入8汤圆

12
发表于 2024-5-3 20:02:09 来自手机 | 只看该作者
判断==0
判断!=0

出50入135汤圆

13
发表于 2024-5-3 20:36:27 来自手机 | 只看该作者
else不就好了

出0入18汤圆

14
发表于 2024-5-3 21:06:34 来自手机 | 只看该作者
大概率没开端口时钟吧,或者端口模式配置不对

出0入30汤圆

15
发表于 2024-5-3 21:16:33 来自手机 | 只看该作者
这个检查速度很快,是否把IO口的频率设置到最高?

出0入57汤圆

16
发表于 2024-5-3 23:48:47 来自手机 | 只看该作者
一般设置为输出的引脚读锁存电平和设置为输入的引脚电平检测不是同一个寄存器,不知道stm32的寄存器是不是分开的。

出0入0汤圆

17
发表于 2024-5-4 07:26:24 来自手机 | 只看该作者
参数2应该不是对应pin2,可能是对应pin1???

出0入475汤圆

18
发表于 2024-5-4 09:38:40 来自手机 | 只看该作者
你们这些软件高手都不知道砸搞调试的,换做我这个半罐水的半罐水,直接就把整个一组端口以及各个觉得没设置对得寄存器读出来打印出来看看不就清楚了。
再不挤,调试器(仿真/烧写器)是来干嘛的啊???挂着一步步看各种寄存器各个端口值的变化啊,量一下io值和寄存器里面的是不是一致

出0入42汤圆

19
发表于 2024-5-4 09:54:09 来自手机 | 只看该作者
你确定你写的
GPIO_ReadInputDataBit(GPIOE,2)
是GPIOE Pin2吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

20
发表于 2024-5-4 13:10:03 | 只看该作者
楼上不错... 用了这个玩意,就不要写一个2了..... 要写GPIO_PIN_2

出0入4汤圆

21
发表于 2024-5-4 18:33:54 | 只看该作者
if((GPIO_ReadInputDataBit(GPIOA,0))==1)
他是非零值,但是不是1

出110入26汤圆

22
发表于 2024-5-4 21:34:44 来自手机 | 只看该作者
你这个需求直接硬件电路解决
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-21 01:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表