OpenEdv-开源电子网

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

多次使能同一个时钟会不会覆盖前面的配置

[复制链接]

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2015-1-12
在线时间
0 小时
发表于 2015-1-15 15:29:45 | 显示全部楼层 |阅读模式
5金钱

在调试STM32F103RC时发现,DAC和I2C模块都出现了端口复用问题,因此按顺序做了一下处理:


//DAC

 RCC->APB2ENR|=1<<0;      //使能AFIO时钟
 AFIO->MAPR|=1<<25;   //010:关闭JTAG-DP,启用SW-DP;PB3 I/O口可用

 //I2C

RCC->APB2ENR|=1<<0;       //使能AFIO时钟
 AFIO->MAPR|=1<<1;    //控制I2C1的SCL和SDA复用功能在GPIO端口的映像 SCL/PB8,SDA/PB9


结果发现,不能下载程序了(用的是ULINK2,SW),前面的DAC配置似乎被覆盖了。。。


请问有没有大哥遇到过这个问题

最佳答案

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

如果用到JTAG口做普通IO口的话,尽量在禁止JTAG口改为普通IO口之前,先延时个几秒时间。 这样不至于烧完程序后,下次就烧不进去了。 如果一上电就把JTAG口失能了。那想烧进程序就很麻烦。 要么就用串口烧。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12081
金钱
12081
注册时间
2013-3-8
在线时间
1284 小时
发表于 2015-1-15 15:29:46 | 显示全部楼层
如果用到JTAG口做普通IO口的话,尽量在禁止JTAG口改为普通IO口之前,先延时个几秒时间。
这样不至于烧完程序后,下次就烧不进去了。
如果一上电就把JTAG口失能了。那想烧进程序就很麻烦。
要么就用串口烧。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11559
金钱
11559
注册时间
2014-4-1
在线时间
1318 小时
发表于 2015-1-15 16:17:26 | 显示全部楼层
你说呢。。。。。
回复

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2015-1-12
在线时间
0 小时
 楼主| 发表于 2015-1-15 17:10:27 | 显示全部楼层
回复【3楼】augustedward:
---------------------------------
可以啦 多谢大哥指导 上个帖子也是大哥在帮忙 真是太感谢了(∩_∩)
回复

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2015-1-12
在线时间
0 小时
 楼主| 发表于 2015-1-15 17:17:12 | 显示全部楼层

可是还有一点不明白 我配置的是启用SW-DP和关闭JTAG-DP 按理说应该可以进行SW调试啊 但是不能进行调试

  

回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12081
金钱
12081
注册时间
2013-3-8
在线时间
1284 小时
发表于 2015-1-15 21:33:41 | 显示全部楼层
回复【5楼】_____503___:
---------------------------------
这个我也不清楚啊,你好好看看手册吧!
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1840
金钱
1840
注册时间
2014-6-27
在线时间
982 小时
发表于 2015-1-16 10:21:11 | 显示全部楼层
回复【4楼】_____503___:
---------------------------------
如果一定要禁用JTAG,你发现下载程序不了,先按复位键,再点下载程序按钮,不行,再点下下载按钮就可以了,就是说禁用了JTAG,烧录上电不能让他执行到禁用JTAG那行代码就行了。
回复

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2015-1-12
在线时间
0 小时
 楼主| 发表于 2015-1-16 18:09:20 | 显示全部楼层
回复【7楼】TinyBoy:
---------------------------------
   恩 我这个问题已经解决了 可是现在问题升级了。。。
   在STM32硬件IIC通信中,我配置了两次AFIO_MAPR寄存器。第一次为了把PB3改为I/O口使用,将默认的串行线JTAG配置改为010(关闭JTAG-DP,启用SW-DP);第二次由于电路原因,将I2C1的俩端口(PB6和PB7)映射到了PB8和PB9。
   问题来了:当先配置PB3,再配置I2C1时,发现无法下载程序了(我用的是ULINK2 SW-DP);改为先配置I2C1,再配置PB3时,能正常下载程序。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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