OpenEdv-开源电子网

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

外部中断为什么也要用外部时钟进行 IO复用?

[复制链接]

104

主题

313

帖子

0

精华

高级会员

Rank: 4

积分
893
金钱
893
注册时间
2014-11-13
在线时间
53 小时
发表于 2014-11-17 16:53:05 | 显示全部楼层 |阅读模式
5金钱
外部中断为什么也要用外部时钟进行 IO复用?外部时钟没有用到重映射吧。。。。

最佳答案

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

因为你要配置EXTICR之类的寄存器,这些寄存器的时钟来自AFIO。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-17 16:53:06 | 显示全部楼层
因为你要配置EXTICR之类的寄存器,这些寄存器的时钟来自AFIO。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2014-10-11
在线时间
4 小时
发表于 2014-11-17 17:04:09 | 显示全部楼层
你这个问题问的有的不理解。
请仔细看IO口的内部结构图,和时钟树。
怎么就扯到重映射上面去了?
回复

使用道具 举报

104

主题

313

帖子

0

精华

高级会员

Rank: 4

积分
893
金钱
893
注册时间
2014-11-13
在线时间
53 小时
 楼主| 发表于 2014-11-17 20:08:06 | 显示全部楼层
EXTICR之类的寄存器,这些寄存器的时钟来自AFIO。请问这个在中文参考手册里有吗?
回复

使用道具 举报

104

主题

313

帖子

0

精华

高级会员

Rank: 4

积分
893
金钱
893
注册时间
2014-11-13
在线时间
53 小时
 楼主| 发表于 2014-11-17 20:08:20 | 显示全部楼层
回复【4楼】long7qazzaq:
---------------------------------
回复【3楼】正点原子:
---------------------------------
回复【3楼】正点原子:
---------------------------------
 EXTICR之类的寄存器,这些寄存器的时钟来自AFIO。请问这个在中文参考手册里有吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-17 20:43:35 | 显示全部楼层
回复【5楼】long7qazzaq:
---------------------------------
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

104

主题

313

帖子

0

精华

高级会员

Rank: 4

积分
893
金钱
893
注册时间
2014-11-13
在线时间
53 小时
 楼主| 发表于 2014-11-17 21:37:49 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------还有个问题,今天遇到的原子哥。不知道为什么?就是
 USART_SendData(USART1,'A');   
 delay_ms(1000);
 USART_SendData(USART1,'B'); 
                 用库的方法发送字符的时候,当发送函数时间间隔很小时候,几乎就会忽略了或说是丢失。就是按道理说是发送 ABABAB。。。。。。。
                 结果是 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA。。。。。。。

              Uart1_PutChar('A');    
   delay_ms(1000);
 Uart1_PutChar('B');
                 当我改用寄存器的发送语句时却不会出现这种问题。。。。请问下知道为什么吗?可以解决吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-17 21:46:53 | 显示全部楼层
回复【7楼】long7qazzaq:
---------------------------------
这很好理解,因为串口发送是需要时间的,当你发送间隔,少于一个字节的发送时间,就会出现你说的问题。
所以正常的写代码,都会加上等待发送完成的代码。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

104

主题

313

帖子

0

精华

高级会员

Rank: 4

积分
893
金钱
893
注册时间
2014-11-13
在线时间
53 小时
 楼主| 发表于 2014-11-18 00:31:28 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
多谢了,原子哥。我还在想难道是库的问题。谢谢了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-19 00:35:00 | 显示全部楼层
回复【9楼】long7qazzaq:
---------------------------------
不是库有问题
是你不会用库。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

104

主题

313

帖子

0

精华

高级会员

Rank: 4

积分
893
金钱
893
注册时间
2014-11-13
在线时间
53 小时
 楼主| 发表于 2014-11-19 13:17:52 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
那应该怎么用
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-20 00:59:27 | 显示全部楼层
回复【11楼】long7qazzaq:
---------------------------------
参考我们库函数的串口实验代码。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-8-29
在线时间
6 小时
发表于 2020-6-12 16:44:06 | 显示全部楼层
是这样的,如果CM3内核,每个IO口(也就是每个引脚)假如都对应自己独立的一根中断线,那么就不用开启AFIO时钟了。但事实上不是这样,CM3内核只给IO口留了15条线中断线,也就是说15*7(GPIOA~G)IO口要共用这15条中断线。如何解决这个问题?那个IO口需要中断响应,就把它映像到一条中断线(具体是通过AFIO_EXTICRx寄存器)。注意,这里用到了映像,所以在配置前必须先使能AFIO时钟。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 04:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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