问个问题,关于端口复用时GPIO的工作模式设定

2019-07-21 01:37发布

最近在看原子哥的教学,本来以为自己搞明白了端口复用时如何设置GPIO的工作模式,就是完全对照下面的图1进行设置。
这样的话,如果我想使用TIM5CH1的输入捕获模式,我应该将对应的GA0的工作模式设置为浮空输入模式,但是再输入捕获实验中,实验的代码中timer的初始初始化函数中的相应代码是[mw_shl_code=c,true]GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        GPIO_ResetBits(GPIOA,GPIO_Pin_0); -[/mw_shl_code]

对应的工作模式为下拉输入而且只有在这种情况下实验现象才能正常。正在疑惑难道在端口复用时GPIO工作模式可能不是完全对照的时候,又看到了后面的电容触摸开关实验中,也用到了TIM5的输入捕获,这里用的是PA1,设置的GPIO工作模式就是输入浮空模式。
现在我是真的搞不懂了,希望有高手能解答一些,谢谢!

(偷偷@正点原子
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-07-21 01:55
因为浮空输入的时候,IO状态不确定,你做捕获用,一个不确定的IO状态,会引起捕获异常,数据异常。
所以,上下拉输入,可以很好的解决这个问题。
另外,手册写的也有不完全的地方,比如上下拉输入,可以正常做捕获。
ichigoooo
2楼-- · 2019-07-21 06:11
正点原子 发表于 2019-5-10 21:16
因为浮空输入的时候,IO状态不确定,你做捕获用,一个不确定的IO状态,会引起捕获异常,数据异常。
所以, ...

哦是这样啊,那这样子就没有和端口复用有关的特别操作了么?直接把这个端口的工作模式设定好,就直接用作TIMx_CH了。
谢谢原子哥

一周热门 更多>