OpenEdv-开源电子网

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

请教一个串口和GPIO的问题。

[复制链接]

15

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2012-3-3
在线时间
0 小时
发表于 2012-3-27 16:34:33 | 显示全部楼层 |阅读模式
在使用串口时,发现,在使能串口使用到的 IO 口时,必须同时使能 GPIO 和 AFIO 的时钟,如果,不使能 GPIO 的时钟,那么串口,就不停的发 00.

具体情况如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
这样使能时钟,就正确。如果,改成:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
串口就不停的发00.

难道
 I/O 口在使能 AFIO 时钟的同时,必须使能 GPIO 时钟吗?
另外,是否对所有的 复用功能 I/O 都必须同时使能 AFIO 和 GPIO 的时钟?


工程在附件里。





 

64脚实验.rar

3.55 MB, 下载次数: 179

Good?good?study,day?day?up.?立志成为牛人。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2012-3-3
在线时间
0 小时
 楼主| 发表于 2012-3-27 16:35:05 | 显示全部楼层
请教各位牛人了。小弟 先 谢谢了。
Good?good?study,day?day?up.?立志成为牛人。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-3-27 17:26:34 | 显示全部楼层
回复【2楼】fanyi:
---------------------------------
必须同时使能.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2201
金钱
2201
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-3-27 18:06:21 | 显示全部楼层
咦?我现在才发现我的串口程序没有开AFIO。。。发送接收居然都正常。。。
https://github.com/roxma
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-3-27 18:17:15 | 显示全部楼层
因为你在别的地方开了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2201
金钱
2201
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-3-27 18:19:51 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
检查了一遍,软件仿真里也检查了寄存器,真的没开。。。
不完全手册里的串口1程序好像也没开AFIO
https://github.com/roxma
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-3-27 18:21:13 | 显示全部楼层
那就要再看看参考手册了.呵呵.可能哪里误解了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-3-27 18:26:31 | 显示全部楼层
初略看了下,AFIO时钟使能大概是在以下几种状况:
1,IO口的中断.
2,IO口的重定向(REMAP).
而并没有指出IO复用需要使能复用时钟.看来这点我们理解有误.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2201
金钱
2201
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-3-27 18:32:10 | 显示全部楼层
嗯,AFIO那一节的开头有提到要 读/写 AFIO 的寄存器的话一定要开AFIO时钟,
https://github.com/roxma
回复 支持 反对

使用道具 举报

15

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2012-3-3
在线时间
0 小时
 楼主| 发表于 2012-3-27 20:20:21 | 显示全部楼层
谢谢楼上的两位了。以前一直以为,I/O 口的时钟,AFIO 和 GPIO 只能开其中一个。没想到,要开 AFIO 就必须开 GPIO。

另外,我也查到资料了,貌似,串口只用通信功能的话,真的不用 开,AFIO 时钟,我也试过了,能行,在板子上能跑,自己用库函数写的,仔细看过了。确实没开 AFIO 时钟。AFIO 时钟,好像只有以下情况,才需要开时钟:

1. 使用了AFIO的事件控制寄存器。

2. 使用了AFIO的重映射功能。

3. 使用了外部中断(EXTI)控制寄存器。

STM 32参考手册从来没说过使用IO的复用功能就一定要开启AFIO时钟.

这是我的一点心得,不知道对不对。
Good?good?study,day?day?up.?立志成为牛人。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-3-27 20:48:36 | 显示全部楼层
慢慢总结.我也学习了.呵呵.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2012-3-3
在线时间
0 小时
 楼主| 发表于 2012-3-27 21:08:34 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
原子哥,真是 太谦虚了。让小弟 恐慌啊。借用一句电影《饭局也疯狂》里面,范伟的台词“我很惆怅啊”。
Good?good?study,day?day?up.?立志成为牛人。
回复 支持 反对

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2011-3-25
在线时间
0 小时
发表于 2012-3-28 08:57:50 | 显示全部楼层
早有这个疑问,一直没研究,还是不够严谨呀,学习楼主的精神...
回复 支持 反对

使用道具 举报

56

主题

289

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2012-11-16
在线时间
65 小时
发表于 2013-9-21 14:11:09 | 显示全部楼层
又长见识了
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-9-21
在线时间
4 小时
发表于 2014-12-24 12:28:10 | 显示全部楼层
有的I/O口默认是复用功能,此时,如果你用的是复用功能的话,就没必要打开AFIO时钟了
回复 支持 反对

使用道具 举报

0

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
370
金钱
370
注册时间
2014-3-5
在线时间
65 小时
发表于 2015-4-1 09:13:27 | 显示全部楼层
看到手册上确实写清楚了

急不来总有障碍客观的存在...
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 11:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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