为什么STM32中SPI的MISO引脚设置成复用推挽输出

 我来答
大司命KZ72YM23
推荐于2017-11-29 · 超过73用户采纳过TA的回答
知道答主
回答量:128
采纳率:0%
帮助的人:66.8万
展开全部
读取其他ARM芯片(如NXP)一般很容易看出芯片的设置是否正确。不过对于STM32就容易让人迷惑了。例如,我们在使用SPI总线进行通信时,可以这样设置:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 |
GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed =
GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode =
GPIO_Mode_AF_PP;
// 复用的推挽输出
答题是肯定的,对于STM32的这一类管脚来说(如USART_RX)即可以设置成为输入模式,也可以设置成为复用的推挽输出。其工作都是正常的,不过建议大家还是设置成为输入端口的好,容易理解。
具体产生这一问题的原因是:从功能上来说,MISO应该配置为输入模式才对,但为什么也可以配置为GPIO_Mode_AF_PP?请看下面的GPIO复用功能配置框图。当一个GPIO端口配置为GPIO_Mode_AF_PP是,这个端口的内部结构框图如下:图中可以看到,片上外设的复用功能输出信号会连接到输出控制电路,然后在端口上产生输出信号。但是在芯片内部,MISO是SPI模块的输入引脚,而不是输出引脚,也就是说图中的"复用功能输出信号"根本不存在,因此"输出控制电路"不能对外产生输出信号。
我不是阿L
2018-05-25
知道答主
回答量:16
采纳率:0%
帮助的人:6917
展开全部
因为STM32的SPI模块本身还有个单线双向模式,可以通过寄存器设置MISO的数据既可以输入也可以输出,如果MISO仅设为输入模式在MISO脚在单线双向模式下将无法提供输出数据功能!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式