打印

stm32f103ze在将端口设置成复用后PP和OD从外部看没区别?

[复制链接]
2783|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zheng_pan 于 2012-5-25 11:32 编辑

如题,
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB|RCC_APB2Periph_SPI1, ENABLE);
/* Configure SPI1 pins: SCK, MISO and MOSI ---------------------------------*/
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
代码如上,debug断点设置在下一条代码,外设窗口如下:
file:///C:/Documents
此时在PA5、PA6、PA7三个口上接10k上拉到VDD,都能将端口拉到接近VDD。
可以确定的是芯片没坏,端口也没坏。因为完整程序代码能正常执行。只是偶然发现了上面的情况,想确认下。有清楚的朋友还望不吝赐教。
此外还发现如果使能了spi1后接上拉就没法拉到VDD了。前面是没有使能spi1的情况
沙发
acgean| | 2012-5-25 15:07 | 只看该作者
按照数据手册的说法, 应该是:
如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。
如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。

楼主的结论有点奇怪

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
zheng_pan + 1 很给力!
板凳
zheng_pan|  楼主 | 2012-5-25 18:52 | 只看该作者
8.1.4 复用功能(AF) 使用默认复用功能前必须对端口位配置寄存器编程。 ● 对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入引脚必须由外部驱动 注意: 也可以通过软件来模拟复用功能输入引脚,这种模拟可以通过对GPIO控制器编程来实现。此时,端口应当被设置为复用功能输出模式。显然,这时相应的引脚不再由外部驱动,而是通过 GPIO控制器由软件来驱动。 ● 对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。 ● 对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。 如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。 如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。
谢谢,我确实在找到了上面的一句话,但是手册里面的图确实很诡异
图中红圈部分从电路上说是无论如何也不可能做到pin口直接与内部相连的!

未命名.GIF (22.46 KB )

未命名.GIF

使用特权

评论回复
地板
zheng_pan|  楼主 | 2014-11-9 14:37 | 只看该作者
结贴

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

0

粉丝