OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9544|回复: 6

STM32 串口实验 用库的一个疑问

[复制链接]

16

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2011-3-30
在线时间
5 小时
发表于 2011-4-27 16:38:15 | 显示全部楼层 |阅读模式
疑问1;

串口中输出配置为了GPIO_Mode_AF_PP

但是AFIO的时钟没有打开,串口的实验还是成功的?这是为啥子 呢?

疑问2:
而且串口也使用了中断。在做外部中断实验时候,必须是要打开AFIO的时钟。但是串口中断不需要吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2011-3-30
在线时间
5 小时
 楼主| 发表于 2011-4-27 17:49:25 | 显示全部楼层

原子哥的配置也是GPIOA->CRH=0X444444B4;//IO状态设置
PA9是 输出,复用推挽
PA10是输入,浮空

这边也有个疑问
 输入端是浮空输入的,跟232连起来的时候,这个口要不要加上拉电阻呢?浮空状态会不会不稳定?谢谢
 

回复 支持 反对

使用道具 举报

2

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2011-3-8
在线时间
0 小时
发表于 2011-7-3 08:59:28 | 显示全部楼层
回复【楼主位】tyqhaha:
疑问1;
串口中输出配置为了GPIO_Mode_AF_PP
但是AFIO的时钟没有打开,串口的实验还是成功的?这是为啥子 呢?
疑问2:
而且串口也使用了中断。在做外部中断实验时候,必须是要打开AFIO的时钟。但是串口中断不需要吗?
---------------------------------
如果没有使用AFIO的重映射功能,只是使用复位后默认的IO复用功能,确实是不需要开AFIO时钟的,这个我刚刚试过了,
只有使用了复用功能的重映射功能或者使用了外部中断,才需要开启AFIO的始终。

而历程中几乎所有的外设都是没有重映射的,所以都不需要开AFIO时钟。
回复 支持 反对

使用道具 举报

2

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2011-3-8
在线时间
0 小时
发表于 2011-7-3 09:02:02 | 显示全部楼层
补充一下,英文版Reference Manual,172页

Bit 2  USART1_REMAP: USART1 remapping
This bit is set and cleared by software. It controls the mapping of USART1 TX and RX 
alternate functions on the GPIO ports.
0: No remap (TX/PA9, RX/PA10)
1: Remap (TX/PB6, RX/PB7)

复位后这个寄存器就是全0的,也就是说USART1默认就在PA9和PA10上,使用这两个IO的复用功能来实现串口功能,就是No Remap,没有重定义,那么就不需要开AFIO。如果你要用PB6和PB7来做串口1,就需要Remap,然后开AFIO时钟了。
回复 支持 反对

使用道具 举报

2

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2011-3-8
在线时间
0 小时
发表于 2011-7-3 09:08:06 | 显示全部楼层
168页,可以看出,只有需要读写AFIO的时间控制寄存器,重映射寄存器,和外部中断配置寄存器时,才需要打开AFIO时钟,从来就没说过使用复用功能就一定要开AFIO时钟。

8.4         AFIO registers
Refer to Section 1.1 on page 40 for a list of abbreviations used in register descriptions.
Note: To read/write the AFIO_EVCR, AFIO_MAPR and AFIO_EXTICRX registers, the AFIO clock 
should first be enabled. Refer to Section 6.3.7: APB2 peripheral clock enable register 
(RCC_APB2ENR).
The peripheral registers have to be accessed by words (32-bit).
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-7-3 10:39:21 | 显示全部楼层
回复【楼主位】tyqhaha:
---------------------------------
1,AFIO的时钟入4楼所给的答案.
2,串口中断不属于外部中断,不需要使能AFIO时钟.4楼的答案也很明白了.

回复【2楼】tyqhaha:
---------------------------------
在<<STM32参考手册>>V10中.8.1.4节,开始有这句话:
使用默认复用功能前必须对端口位配置寄存器编程。
 ● 对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入引脚必须由外部驱动

说明输入设置,只需要配置浮空/上拉/下拉的一种.使用外部驱动,因为PL2303的输出,电平是确定的,所以不会出现你担忧的情况.

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2013-6-21
在线时间
0 小时
发表于 2013-10-15 15:07:34 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-11 14:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表