新手上路
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2019-1-26
- 在线时间
- 6 小时
|
1金钱
本帖最后由 lzmonkey 于 2019-1-26 17:00 编辑
各位好,我现在用的探索者的板子,刚在做按键控制LED实验的时候发现,两个led的上下拉电阻不管怎么配置管脚的初始输出都是0,我用仿真器打断点在 GPIO_Init(GPIOF,&ledConfig);这句后面,
有用的代码只有下面几句,其余的与led无关的我都注释掉了,可以看到不管9 10脚的是上拉还是下拉IDR和ODR的值是一样的。
如果用GPIO_SetBits设置管脚,输出是正常的,从现象看,除了上下拉电阻没生效之外其余都比较正常,不知道是不是我对上下拉电阻的理解有什么不对的。
GPIO_InitTypeDef ledConfig;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);
ledConfig.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;
ledConfig.GPIO_Mode=GPIO_Mode_OUT;
ledConfig.GPIO_Speed=GPIO_Low_Speed;
ledConfig.GPIO_OType=GPIO_OType_PP;
ledConfig.GPIO_PuPd=GPIO_PuPd_UP;//ledConfig.GPIO_PuPd=GPIO_PuPd_DOWN
GPIO_Init(GPIOF,&ledConfig);
|
最佳答案
查看完整内容[请看2#楼]
您把Pin脚设置PP输出, Pin脚的电平就会以ODR为准, 因为PP输出等于是强上下拉.
所以您设置上下拉会没有作用, 通常设置内部上下拉是要给输入Pin脚用.
|