打印

求助:关于复用重映射AFIO_MAPR寄存器设置问题

[复制链接]
8454|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本人菜鸟,刚入手STM32,用的是库函数3.0版本的。学到GPIO就遇到麻烦了关于设置复用重映射和调试I/O配置寄存器的函数看不懂,我就不贴整个代码了,


#define DBGAFR_SWJCFG_MASK          ((uint32_t)0xF0FFFFFF)

void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)

这个函数里面总有一段代码如下:
tmpreg |= ~DBGAFR_SWJCFG_MASK;
…………省略N行…………
AFIO->MAPR = tmpreg;

也就是说把MPAR寄存器的24~27位置为1;为什么要把这四位置1呀……





三位置1,这里说禁用是什么意思?

我实在整不明白才会发帖的,网上也没对这个函数的讲解, 所以大神们帮帮我吧,小弟感激不尽……
沙发
logokfu| | 2012-5-6 09:03 | 只看该作者
三位置1就属于其他组合,你就无法使用JTAG功能了。

使用特权

评论回复
板凳
airwill| | 2012-5-6 09:16 | 只看该作者
tmpreg |= ~DBGAFR_SWJCFG_MASK;

软件都是通过这种方式来屏蔽不相干位, 以免对寄存器中的其他位产生影响

使用特权

评论回复
地板
wufei608|  楼主 | 2012-5-6 15:13 | 只看该作者
2# **kfu
100关闭JTAG-DP,关闭SW-DP和111禁用有什么区别了??

使用特权

评论回复
5
logokfu| | 2012-5-6 16:01 | 只看该作者
楼主的手册是中文版的,并且应该不是最新版本的吧。最新版的应该是这个。


最新版手册对这几位是这么描述的。你也可以对照下英文原版的看下。另外这个我也没有实际验证过。根据手册说的的三位同时置1的话是没有影响(no effect) 楼主可以自己实际验证下是最好不过了。



使用特权

评论回复
6
logokfu| | 2012-5-6 16:02 | 只看该作者
另外既然楼主是刚学STM32不如直接使用最新的固件库 3.5版本的。不要再用老版本的了。

使用特权

评论回复
7
wufei608|  楼主 | 2012-5-6 16:36 | 只看该作者
5# **kfu
呵呵,谢谢你的解答,刚去试了下,分别写了100和111,写了100就关闭了JTAG,连程序都下不进去了,而写111是没有影响。
谢谢你了:lol。 嗯,谢谢你的提醒,去下个3.5版本的。

使用特权

评论回复
8
logokfu| | 2012-5-6 16:46 | 只看该作者
5# **kfu
呵呵,谢谢你的解答,刚去试了下,分别写了100和111,写了100就关闭了JTAG,连程序都下不进去了,而写111是没有影响。
谢谢你了:lol。 嗯,谢谢你的提醒,去下个3.5版本的。 ...
wufei608 发表于 2012-5-6 16:36

关闭了也不要紧,可以再写一个程序开启JTAG然后用串口ISP下载进去就好了。

使用特权

评论回复
9
威威猫| | 2014-3-31 20:33 | 只看该作者
**kfu 发表于 2012-5-6 16:46
关闭了也不要紧,可以再写一个程序开启JTAG然后用串口ISP下载进去就好了。 ...

我想请教你一个问题,关于STM32中我把SW-JTAG和SW-DP都关闭了
AFIO->MAPR&=0XF8FFFFFF;
AFIO->MAPR|=0x0C000000;
然后仿真器与板儿就连接不上了,把上面程序改写复位后,也连接不上,总是出现
想知道怎么才能再连接上?谢谢,不胜感激

使用特权

评论回复
10
myxiaonia| | 2014-4-2 12:26 | 只看该作者
威威猫 发表于 2014-3-31 20:33
我想请教你一个问题,关于STM32中我把SW-JTAG和SW-DP都关闭了
AFIO->MAPR&=0XF8FFFFFF;
AFIO->MAPR|=0x0C ...

刚好我之前也遇上这个问题,因为程序内部设置时钟的锁相环需要几十ms以上,你可以在这个时间内连上jtag并且删除程序,祝好运

使用特权

评论回复
11
威威猫| | 2014-4-3 10:21 | 只看该作者
myxiaonia 发表于 2014-4-2 12:26
刚好我之前也遇上这个问题,因为程序内部设置时钟的锁相环需要几十ms以上,你可以在这个时间内连上jtag并 ...

我已经解决了,谢谢

使用特权

评论回复
12
myxiaonia| | 2014-4-3 10:26 | 只看该作者
威威猫 发表于 2014-4-3 10:21
我已经解决了,谢谢

用的什么方法?

使用特权

评论回复
13
威威猫| | 2014-4-3 14:05 | 只看该作者
myxiaonia 发表于 2014-4-3 10:26
用的什么方法?

在SW-JTAG和SW-DP都关闭的情况下,程序是下载不进去的,将BOOT0上拉,然后再上电后,下载程序,之后再把BOOT0下拉,就可以用了

使用特权

评论回复
14
myxiaonia| | 2014-4-4 07:42 | 只看该作者
威威猫 发表于 2014-4-3 14:05
在SW-JTAG和SW-DP都关闭的情况下,程序是下载不进去的,将BOOT0上拉,然后再上电后,下载程序,之后再把B ...

不错的思路,我的板上这些都已经焊死了,我就用上电那么点功夫搞定的

使用特权

评论回复
15
FAQ| | 2014-4-4 08:37 | 只看该作者
威威猫 发表于 2014-4-3 14:05
在SW-JTAG和SW-DP都关闭的情况下,程序是下载不进去的,将BOOT0上拉,然后再上电后,下载程序,之后再把B ...

你是用串口ISP的吧

使用特权

评论回复
16
威威猫| | 2014-4-4 14:30 | 只看该作者
myxiaonia 发表于 2014-4-4 07:42
不错的思路,我的板上这些都已经焊死了,我就用上电那么点功夫搞定的

因为AD采样数值最大最小差了10个数,精度严重偏低,我就把AD供电电源VDDA3.3v的电压接了个电容再接地,结果仿真器烧了,芯片也烧了,o(︶︿︶)o 唉

使用特权

评论回复
17
myxiaonia| | 2014-4-5 21:10 | 只看该作者
威威猫 发表于 2014-4-4 14:30
因为AD采样数值最大最小差了10个数,精度严重偏低,我就把AD供电电源VDDA3.3v的电压接了个电容再接地,结 ...

小心为妙啊呵呵

使用特权

评论回复
18
controle| | 2014-6-23 14:43 | 只看该作者
你们都用的啥板子  我这板子没有 boot0啊 出现问题一样 我怎么处理啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

23

帖子

1

粉丝