OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 37343|回复: 44

AFIO时钟何时开启【自己的理解】

  [复制链接]

  离线 

7

主题

26

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2013-7-10
在线时间
1 小时
发表于 2013-8-8 19:55:54 | 显示全部楼层 |阅读模式

首先为什么要开启时钟?

答:因为要对寄存器进行读写!而在STM32中对寄存器的读写都是要打开寄存器对应的时钟才可以的【就像人一样,有了跳动的脉搏手臂才能有能量才能进行各种动作】。

然后就什么时候AFIO时钟开启(所有时钟都是这样)就清楚了:当需要对“AFIO时钟管理的寄存器”进行读写时AFIO时钟打开!当然不对“AFIO时钟管理的寄存器”读写时也可以打开AFIO时钟,此时只是白白增加能耗、写无用代码(白白浪费程序存储器空间)而已!

接下来:跟AFIO相关的寄存器有哪些呢?

答:根据《STM32中文参考手册_V10》有:事件控制寄存器(AFIO_EVCR)复用重映射和调试I/O 配置寄存器(AFIO_MAPR)外部中断配置寄存器1(AFIO_EXTICR1)外部中断配置寄存器2(AFIO_EXTICR2)外部中断配置寄存器3(AFIO_EXTICR3)外部中断配置寄存器4(AFIO_EXTICR4)

应用:在usart1串口通信没有端口重映射时为什么不打开AFIO时钟?PA9PA10作为通用I/O口也复用了,为什么不打开为什么不打开复用时钟?

答:AFIO全称:Alternate function I/O  alternate备用的、替代的、交替的,所以AFIO可翻译为“备用功能I/O”,原英文手册上解释很清楚:[STM32英文手册》P152]

To optimize the number of peripherals available for the 64-pin or the 100-pin or the 144-pin package, it is possible to remap some alternate functions to some other pins. This is

achieved by software, by programming the AF remap and debug I/O configuration register(AFIO_MAPR) on page 159. In this case, the alternate functions are no longer mapped to

their original assignations.

可见AFIO就设计用来remap some alternate functions to some other pins的,所以根本就没有什么“复用”之说,看来都是翻译惹的祸!另外看一下I/O复用时的情况就更清楚了

[STM32中文参考手册_V10P109]



可见,当设置“PA9GPIO_Mode_AF_PP(只是一个常数0x18)、PA10GPIO_Mode_IN_FLOATING(只是一个常数0x04)”时PA9PA10就已经直接跟串口的相应寄存器连接上了,而串口的寄存器不需要AFIO时钟、PA9/PA10也不许要AFIO时钟,同时有没有对AFIO相应的寄存器操作所以根本不用开启AFIO时钟!




回复

使用道具 举报

  离线 

516

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
134866
金钱
134866
注册时间
2010-12-1
在线时间
1319 小时
发表于 2013-8-8 21:02:45 | 显示全部楼层
谢谢分享,总结的不错啊.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

头像被屏蔽

  离线 

6168

主题

7041

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19700
金钱
19700
注册时间
2012-12-27
在线时间
23 小时
发表于 2013-8-8 21:20:54 | 显示全部楼层
不明觉厉
回复 支持 反对

使用道具 举报

  离线 

109

主题

1608

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2219
金钱
2219
注册时间
2011-12-15
在线时间
37 小时
发表于 2013-8-8 23:05:21 | 显示全部楼层
恩,不错呀,值得鼓励
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复 支持 反对

使用道具 举报

  离线 

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-7-15
在线时间
0 小时
发表于 2013-8-10 10:20:25 | 显示全部楼层
 说的很好
回复 支持 反对

使用道具 举报

  离线 

17

主题

472

帖子

1

精华

高级会员

Rank: 4

积分
718
金钱
718
注册时间
2013-11-23
在线时间
0 小时
发表于 2013-11-27 14:59:55 | 显示全部楼层
恩,确实,一般外部中断/事件输出/重映射的时候才需要开启,默认的复用功能时不需要开启
回复 支持 反对

使用道具 举报

  离线 

516

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
134866
金钱
134866
注册时间
2010-12-1
在线时间
1319 小时
发表于 2014-1-9 12:53:30 | 显示全部楼层
cool
回复 支持 反对

使用道具 举报

  离线 

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
发表于 2014-8-15 16:30:52 | 显示全部楼层
非常感谢!!!!
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-11-12
在线时间
0 小时
发表于 2014-11-12 22:00:56 | 显示全部楼层
多有收益!!!
回复 支持 反对

使用道具 举报

  离线 

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-12-2
在线时间
0 小时
发表于 2015-3-28 14:16:38 | 显示全部楼层
感谢分享 !
回复 支持 反对

使用道具 举报

  离线 

1

主题

5

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-7-30
在线时间
3 小时
发表于 2015-4-3 19:18:52 | 显示全部楼层
感谢分享!!!
回复 支持 反对

使用道具 举报

  离线 

6

主题

92

帖子

0

精华

高级会员

Rank: 4

积分
572
金钱
572
注册时间
2014-10-6
在线时间
38 小时
发表于 2015-4-3 20:22:02 | 显示全部楼层
灰常感谢,讲的很详细!
回复 支持 反对

使用道具 举报

  离线 

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-8-15
在线时间
0 小时
发表于 2015-4-6 16:03:49 | 显示全部楼层
回复【10楼】静:
---------------------------------
没错,有这一说
回复 支持 反对

使用道具 举报

  离线 

12

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2014-10-23
在线时间
0 小时
发表于 2015-4-16 19:56:16 | 显示全部楼层
谢谢分享,,,,,,,
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-3-9
在线时间
0 小时
发表于 2015-5-26 17:18:25 | 显示全部楼层
谢谢,领教了
回复 支持 反对

使用道具 举报

  离线 

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-6-2
在线时间
4 小时
发表于 2015-6-3 17:23:02 | 显示全部楼层
回复【10楼】静:
---------------------------------
如果不是使用默认复用功能呢,比如PA4作为DAC使用的时候,第一默认是SPI1_NSS,第三才是DAC,那么此时用不用打开AFIO呢?
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-10-28
在线时间
0 小时
发表于 2015-8-18 13:36:22 | 显示全部楼层
在使用TIM3,CH4作为pwm输出的时候,AFIO不开启的时候,无法输出波形。没有设置引脚映射功能。求解释
回复 支持 反对

使用道具 举报

  离线 

2

主题

6

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2015-4-12
在线时间
5 小时
发表于 2015-10-20 11:18:38 | 显示全部楼层
回复【10楼】静:
---------------------------------
兄弟,你好棒
回复 支持 反对

使用道具 举报

  离线 

78

主题

905

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1550
金钱
1550
注册时间
2013-4-15
在线时间
111 小时
发表于 2015-11-6 11:12:02 | 显示全部楼层
总结的很到位,赞一个,其实就是查看下AFIO那个配置寄存器,就知道什么时候要开启,什么时候不需要开启
合肥-文盲
回复 支持 反对

使用道具 举报

  离线 

24

主题

192

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
325
金钱
325
注册时间
2016-3-16
在线时间
133 小时
发表于 2016-3-24 19:59:42 | 显示全部楼层
楼主大神,这个问题经常困扰我,一语惊醒梦中人!! 谢谢!  受教了。。
回复 支持 反对

使用道具 举报

  离线 

56

主题

274

帖子

1

精华

高级会员

Rank: 4

积分
742
金钱
742
注册时间
2012-3-29
在线时间
66 小时
发表于 2016-7-6 18:59:23 | 显示全部楼层
谢谢分享经验!
回复 支持 反对

使用道具 举报

  离线 

7

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2016-4-10
在线时间
48 小时
发表于 2016-7-25 15:24:04 | 显示全部楼层
可以啊   这种精神可嘉      现在这么努力的人少啦
回复 支持 反对

使用道具 举报

  离线 

1

主题

10

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-8-17
在线时间
6 小时
发表于 2016-8-18 10:13:07 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APBPeriph_AFIO|ENABLE);
复用IO口写了这句之后,RCC_APBPeriph_AFIO应该怎么定义啊?
回复 支持 反对

使用道具 举报

  离线 

1

主题

11

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-7-27
在线时间
2 小时
发表于 2016-8-20 14:53:33 | 显示全部楼层
这个真心不错。。。谢谢分享
回复 支持 反对

使用道具 举报

  离线 

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2016-7-15
在线时间
12 小时
发表于 2016-8-21 23:22:11 | 显示全部楼层
就是啊,初学的时候复用和重映射一直混
好好学习,天天向上。
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2016-9-12
在线时间
0 小时
发表于 2016-9-12 16:48:11 | 显示全部楼层
初学者,感谢楼主分享,get了新姿势~~
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2014-4-13
在线时间
8 小时
发表于 2016-11-28 21:49:12 | 显示全部楼层
感谢分享,刚学到这里,正有这个困惑!
回复 支持 反对

使用道具 举报

  离线 

5

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2016-7-30
在线时间
82 小时
发表于 2016-11-29 14:58:45 | 显示全部楼层
mark...............
回复 支持 反对

使用道具 举报

  离线 

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2015-10-23
在线时间
15 小时
发表于 2016-12-8 16:47:44 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

  离线 

7

主题

141

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
408
金钱
408
注册时间
2016-12-14
在线时间
62 小时
发表于 2017-3-2 10:49:04 | 显示全部楼层
学习了。谢谢。
书山有路勤为径,学海无涯苦作舟!
回复 支持 反对

使用道具 举报

  离线 

8

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2014-3-14
在线时间
40 小时
发表于 2017-3-3 16:54:36 | 显示全部楼层
学习了,谢谢
回复 支持 反对

使用道具 举报

  离线 

0

主题

6

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2017-1-9
在线时间
12 小时
发表于 2017-3-4 09:48:47 | 显示全部楼层
赞赞赞赞赞赞
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2017-3-4
在线时间
3 小时
发表于 2017-3-5 19:38:08 | 显示全部楼层
不明觉厉
回复 支持 反对

使用道具 举报

  离线 

10

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2016-4-22
在线时间
82 小时
发表于 2017-3-11 15:10:26 | 显示全部楼层
总结的很好呢
回复 支持 反对

使用道具 举报

  离线 

5

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2013-4-4
在线时间
45 小时
发表于 2017-3-12 20:26:54 | 显示全部楼层
学习了~~
回复 支持 反对

使用道具 举报

不远 该用户已被删除
发表于 2017-4-11 11:02:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

goodpcb 该用户已被删除
发表于 2017-4-11 13:06:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

  离线 

1

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2017-5-31
在线时间
4 小时
发表于 2017-6-26 12:02:56 | 显示全部楼层
真是好,nice
回复 支持 反对

使用道具 举报

  离线 

5

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2017-10-8
在线时间
26 小时
发表于 2017-10-15 22:15:20 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

  离线 

25

主题

162

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2017-7-17
在线时间
149 小时
发表于 2017-10-16 00:40:36 | 显示全部楼层
受教,谢谢分享
回复 支持 反对

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2018-7-2
在线时间
5 小时
发表于 2018-7-5 14:05:39 | 显示全部楼层
很有道理
回复 支持 反对

使用道具 举报

  离线 

26

主题

320

帖子

1

精华

高级会员

Rank: 4

积分
938
金钱
938
注册时间
2018-4-13
在线时间
150 小时
发表于 2018-7-5 17:08:47 | 显示全部楼层
谢谢分享。
还没有具体使用复用功能以及复用功能重映射,楼主的分享很有用。
回复 支持 反对

使用道具 举报

  离线 

80

主题

775

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1404
金钱
1404
注册时间
2014-3-7
在线时间
297 小时
发表于 2018-7-13 14:27:26 | 显示全部楼层




回复 支持 反对

使用道具 举报

  离线 

16

主题

306

帖子

0

精华

高级会员

Rank: 4

积分
967
金钱
967
注册时间
2017-7-6
在线时间
180 小时
发表于 2018-7-13 15:54:32 | 显示全部楼层
这个其实看寄存器就知道要不要开复用时钟啦  这个复用时钟的寄存器配置初始值为0x00000000,然后你在看PA9和PA10,串口1,这个复用时钟的寄存器为0,PA9和PA10就已经是选定了串口啦 只要把脚位设置成复用IO口就OK啦,我是这样理解的,大佬勿喷
1.jpg
2.jpg
我是小白,很白很白的小白!!!
回复 支持 反对

使用道具 举报

  离线 

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2018-4-14
在线时间
8 小时
发表于 2018-7-16 15:02:00 | 显示全部楼层
言简意赅!
回复 支持 反对

使用道具 举报

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

本版积分规则




关闭

正点原子双11大促销上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-11-19 21:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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