查看: 5904|回复: 3

苏大库 GPIO检测输入无效,输出可以。

[复制链接]

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
发表于 2016-6-30 15:18:44 | 显示全部楼层 |阅读模式
输入一直检测都是低电平。
回复

使用道具 举报

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
 楼主| 发表于 2016-6-30 15:27:04 | 显示全部楼层
gpio_init((PORTC|(3)),0,1);
KEY=gpio_get(PORTC|(3));
回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
 楼主| 发表于 2016-7-6 14:30:38 | 显示全部楼层
快来人
回复

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

中级会员

Rank: 3Rank: 3

积分
204
最后登录
2020-12-2
发表于 2017-2-16 09:25:07 | 显示全部楼层
昨天遇到同样问题,经分析是苏大GPIO.C底层驱动问题:在GPIO模块中有一个输入禁止寄存器GPIOx_PIDR
该寄存器在CPU复位时都为1,(高电位),引脚不被配置为GPIO输入,(既使该引脚配置为输入),读出来的数永远为0。解决办法:将该引脚 的输入禁止寄存器位置0,使其允许输入。如果使用GPIO底层库的话,需将gpio_init函数最后一句加上置位输人禁止寄存器的语句,如下所示:
        else                            //希望为输入
        {
                //数据方向寄存器定义为输入
                BCLR(bit, GPIO_PDDR_REG(gpio_ptr));
                //数据禁止寄存器位置0
                BCLR(bit, GPIO_PIDR_REG(gpio_ptr));               //新加语句
        }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 05:05 , Processed in 0.087779 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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