打印
[STM32F1]

关于STM32F103的FSMC和I2C1的冲突问题咨询(问题找到了)

[复制链接]
3509|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwmasdf|  楼主 | 2017-12-21 10:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zwmasdf 于 2017-12-21 13:28 编辑

问题找到了
__HAL_RCC_I2C1_CLK_ENABLE();会导致SWD功能被禁,不信各位可以试试,注释该语句,SWD不会被禁,一旦启用该语句,SWD自动禁止
解决方法就是在该语句后面强制开启SWD调试功能__HAL_AFIO_REMAP_SWJ_NOJTAG();,如果是用JTAG的用相应的启用语句

使用CUBEMX开发,当开启FSMC的LCD功能和I2C1功能时,I2C1无法工作。经查询I2C1和FSMC的NADV管脚发生冲突,导致I2C无法工作。查阅最新版的Errata Sheet 可以得知解决方法是将I2C1管脚重映射到PB8和PB9上去

当时采用2种方案去解决这个问题
方案1. 将AFIO_MAPR2的FSMC_NADV位设为禁止NADV输出,参考依据为最新版的参考手册
因为CUBEMX没有报管脚冲突,于是查看了一下代码,发现CUBEMX自动将该功能禁止了
结合中文版的参考手册发现没有MAPR2寄存器,可见该功能是ST后来添加上去的,而我的芯片(买来不超过1年)应该是N年前的库存货,方案1无法使用

方案2. 使用CUBEMX将管脚映射到PB8和PB9上去,但是烧录完后就无法继续烧录,用的是JLINK的4线制SWD(VCC,SWDIO,SWCLK,GND),必须将RESET引脚连到JLINK上才能正常烧录,请问是怎么回事,求助一下,
这个工程用CUBEMX生成,没有一句自己的代码,但是烧录完后再烧录就不行了

问题应该不在FSMC,而是I2C1上,我重新建了个工程,仅仅使能I2C1,但是还是这样,我先把CUBEMX工程上传吧
test.rar (444.6 KB)

沙发
fengfeng的恒| | 2017-12-21 11:59 | 只看该作者
有可能是SWD接口被禁用了。

使用特权

评论回复
板凳
heisexingqisi| | 2017-12-21 12:01 | 只看该作者
你先擦除试试看,能否擦除。

使用特权

评论回复
地板
heisexingqisi| | 2017-12-21 12:02 | 只看该作者
STM32 ST-LINK Utility
用这个软件擦除。

使用特权

评论回复
5
heisexingqisi| | 2017-12-21 12:03 | 只看该作者
以前我也遇到过没法再次写入的问题,我先擦干净芯片,重新写就可以了。

使用特权

评论回复
6
zwmasdf|  楼主 | 2017-12-21 12:06 | 只看该作者
fengfeng的恒 发表于 2017-12-21 11:59
有可能是SWD接口被禁用了。

没有禁用,我将I2C引脚设成默认的PB5和PB6是可以重复下载的,你可以看一下我CUBEMX截图总能SYS是用Serial Wire方式的,自己一句代码也没加

使用特权

评论回复
7
zwmasdf|  楼主 | 2017-12-21 12:06 | 只看该作者
heisexingqisi 发表于 2017-12-21 12:01
你先擦除试试看,能否擦除。

不行的,除非BOOT拉高烧录或者RESET接到JLINK上去,否则就无法烧录了。
JLINK无法复位单片机

使用特权

评论回复
8
zwmasdf|  楼主 | 2017-12-21 12:07 | 只看该作者
heisexingqisi 发表于 2017-12-21 12:02
STM32 ST-LINK Utility
用这个软件擦除。

我只有JLINK

使用特权

评论回复
9
fengfeng的恒| | 2017-12-21 17:22 | 只看该作者
我觉得你应该把SYS选项里改为no debug

使用特权

评论回复
10
zwmasdf|  楼主 | 2017-12-21 20:03 | 只看该作者
fengfeng的恒 发表于 2017-12-21 17:22
我觉得你应该把SYS选项里改为no debug

改为no debug就禁止调试功能了

使用特权

评论回复
11
mmuuss586| | 2017-12-21 21:44 | 只看该作者
感谢分享;

使用特权

评论回复
12
huangcunxiake| | 2017-12-22 14:05 | 只看该作者
是什么问题啊?

使用特权

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

本版积分规则

4

主题

50

帖子

1

粉丝