OpenEdv-开源电子网

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

外部中断代码有点不理解

[复制链接]

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
发表于 2016-6-3 14:52:48 | 显示全部楼层 |阅读模式
5金钱
QQ图片20160603145022.png
如图:端口复用和重映射理解不透彻这一块代码有点搞不懂
这个到底是怎么分组的还有怎么映射的

最佳答案

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

我意思是比如第一个 你就代入GPIOA,0这组参数,然后对照参考手册的AFIO寄存器一位一位分析,只要会c语言,就可以搞懂的。 如果分析的吃力的话,也可以借助硬件仿真,调试,单步看寄存器的值,反正只有几条语句。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-6-3 14:52:49 | 显示全部楼层
本帖最后由 东北小辉辉 于 2016-6-3 16:00 编辑
hwhcgx 发表于 2016-6-3 15:55
不是啊第二个参数不是那个

我意思是比如第一个 你就代入GPIOA,0这组参数,然后对照参考手册的AFIO寄存器一位一位分析,只要会c语言,就可以搞懂的。

如果分析的吃力的话,也可以借助硬件仿真,调试,单步看寄存器的值,反正只有几条语句。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
 楼主| 发表于 2016-6-3 15:02:08 | 显示全部楼层
顶一个,要不沉了
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
 楼主| 发表于 2016-6-3 15:10:54 | 显示全部楼层
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
 楼主| 发表于 2016-6-3 15:14:07 | 显示全部楼层
还有就是第二个参数的作用不太理解
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-6-3 15:20:45 | 显示全部楼层
这个... 可以去看参考手册,AFIO寄存器那里,自己代入具体的数值,比如GPIOA,BIT0,就明白了。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
 楼主| 发表于 2016-6-3 15:55:15 | 显示全部楼层
东北小辉辉 发表于 2016-6-3 15:20
这个... 可以去看参考手册,AFIO寄存器那里,自己代入具体的数值,比如GPIOA,BIT0,就明白了。

不是啊第二个参数不是那个C:\Users\Administrator\Desktop\a.png a.png
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-6-3 16:12:36 | 显示全部楼层
我的理解是这样,如果是c语言语句本身看不懂的话,楼主可以去补习一下c语言,&和|,~这几个操作符的知识。

如果c语言可以看得懂,知道这些操作符的意思,但是不知道为什么这样做,那么就去对照参考手册相应的寄存器,看一下这样操作会造成什么样的结果。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

8

主题

571

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2919
金钱
2919
注册时间
2016-5-13
在线时间
185 小时
发表于 2016-6-3 17:13:53 | 显示全部楼层
看不明白就用库函数呗。
虽然不明白你们在说什么,但感觉很厉害的样子。
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-10-26
在线时间
11 小时
 楼主| 发表于 2016-6-3 17:47:27 | 显示全部楼层
东北小辉辉 发表于 2016-6-3 16:12
我的理解是这样,如果是c语言语句本身看不懂的话,楼主可以去补习一下c语言,&和|,~这几个操作符的知识。
...

哦哦,看了半天才明白第二个参数是映射引脚也就是DPIOA的第几个接口。明白了谢谢。
不过中断的GPIO初始化设置CRL设置寄存器为甚么那个还要设置ODR数据寄存器为一呢。后面注释是上拉void KEY_Init(void)
{
        RCC->APB2ENR|=1<<2;     //使能PORTA时钟
        RCC->APB2ENR|=1<<6;     //使能PORTE时钟
        GPIOA->CRL&=0XFFFFFFF0;        //PA0设置成输入,默认下拉          
        GPIOA->CRL|=0X00000008;
          
        GPIOE->CRL&=0XFFF000FF;        //PE2/3/4设置成输入          
        GPIOE->CRL|=0X00088800;         //上拉、下拉输入                          
        GPIOE->ODR|=7<<2;                   //PE2/3/4 上拉
}

回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-6-3 20:26:23 | 显示全部楼层
hwhcgx 发表于 2016-6-3 17:47
哦哦,看了半天才明白第二个参数是映射引脚也就是DPIOA的第几个接口。明白了谢谢。
不过中断的GPIO初始 ...

我这里无法截图,参考手册上有写,就是配置IO为输入时,是由ODR寄存器来决定是上拉输入还是下拉输入的,我这里是Table 20. Port bit configuration table。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 18:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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