在线时间26 小时
UID2034485
注册时间2015-10-28
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 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)); //新加语句
} |
|