OpenEdv-开源电子网

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

复用时钟的使能

[复制链接]

13

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2015-10-12
在线时间
21 小时
发表于 2017-1-6 10:33:27 | 显示全部楼层 |阅读模式
1金钱
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);在中断的时候为什么不使能复用时钟?
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);        //在中断里边却要使能这个时钟

最佳答案

查看完整内容[请看2#楼]

AFIO是开启重映射的,如果你的串口1重映射到了PB6上面的话就要开启了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-6 10:33:28 | 显示全部楼层
AFIO是开启重映射的,如果你的串口1重映射到了PB6上面的话就要开启了
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-6 11:53:34 | 显示全部楼层
你的上面那个是用来初始化串口时钟的
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-6 12:04:24 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE),你主要是哪个没弄清楚
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7539
金钱
7539
注册时间
2016-11-30
在线时间
641 小时
发表于 2017-1-6 12:10:06 | 显示全部楼层
学习一下!
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-6 12:26:01 | 显示全部楼层
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);需要定义这个复用辅助功能时钟是因为你用到了外部中断,要配置外部中断线映射所以要送到一个时钟初始化
回复

使用道具 举报

13

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2015-10-12
在线时间
21 小时
 楼主| 发表于 2017-1-6 18:50:13 | 显示全部楼层
wangzaiwudi 发表于 2017-1-6 12:26
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);需要定义这个复用辅助功能时钟是因为你用到了外部中 ...

在串口里面为什么不使能这个时钟,串口不也是复用吗?
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-6 19:13:00 | 显示全部楼层
这应该是他内部协议好的,只有当配置复用功能重映射、配置外部中断线映射还有配置事件输出这三种情况才要用到
回复

使用道具 举报

5

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2016-11-7
在线时间
63 小时
发表于 2017-1-6 19:13:48 来自手机 | 显示全部楼层
串口一是开启串口时钟 GPIO是开启io端口时钟 AFIO是开启端口复用时钟
回复

使用道具 举报

13

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2015-10-12
在线时间
21 小时
 楼主| 发表于 2017-1-6 19:27:22 | 显示全部楼层
lihilong 发表于 2017-1-6 19:13
串口一是开启串口时钟 GPIO是开启io端口时钟 AFIO是开启端口复用时钟

好的,非常感谢
回复

使用道具 举报

5

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2016-11-7
在线时间
63 小时
发表于 2017-1-6 19:53:47 | 显示全部楼层
wangzaiwudi 发表于 2017-1-6 19:28
AFIO是开启重映射的,如果你的串口1重映射到了PB6上面的话就要开启了

感觉你好像记错了
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-6 20:43:56 | 显示全部楼层
lihilong 发表于 2017-1-6 19:53
感觉你好像记错了

哪个地方
回复

使用道具 举报

13

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2015-10-12
在线时间
21 小时
 楼主| 发表于 2017-1-6 20:52:08 | 显示全部楼层
wangzaiwudi 发表于 2017-1-6 19:28
AFIO是开启重映射的,如果你的串口1重映射到了PB6上面的话就要开启了

能不能用更直白的话解释一下重映射的概念
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-7 10:20:19 | 显示全部楼层
你可以在芯片手册里面查哪个外设可以重映射到哪个I/O口上,然后你就可以把当前这个外设接的I/O口重映射到另外一个I/O口上,也就是用另外一个I/O代替当前这个I/O引脚,主要是为了我们画PCB板的时候方便走线,减少交叉的干扰。
回复

使用道具 举报

13

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2015-10-12
在线时间
21 小时
 楼主| 发表于 2017-1-7 10:34:15 | 显示全部楼层
wangzaiwudi 发表于 2017-1-7 10:20
你可以在芯片手册里面查哪个外设可以重映射到哪个I/O口上,然后你就可以把当前这个外设接的I/O口重映射到另 ...

懂了,长见识了,多谢哈
回复

使用道具 举报

5

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2016-11-7
在线时间
63 小时
发表于 2017-1-7 12:34:30 来自手机 | 显示全部楼层
wangzaiwudi 发表于 2017-1-6 20:43
哪个地方

AFIO是端口复用 至于重映射的时候 因为会用到除了GPIO以外的外设 所以也会相应的开启AFIO时钟 但不能说AFIO是重映射的时钟?
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-7 12:40:46 | 显示全部楼层
lihilong 发表于 2017-1-7 12:34
AFIO是端口复用 至于重映射的时候 因为会用到除了GPIO以外的外设 所以也会相应的开启AFIO时钟 但不能说AF ...

嗯嗯,。中
回复

使用道具 举报

12

主题

61

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2017-1-6
在线时间
29 小时
发表于 2017-1-7 12:42:11 | 显示全部楼层

我现在碰到一个很棘手的问题,能不能帮我想一下,我有3个按键接在不同的IO口上,我按下其中一个按键不松开,另外两个都失效了,这个问题怎么解决,帮我想想,万分感谢!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-29 06:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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