[STM32F1]

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

[复制链接]
3023|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 无标题.png 可以得知解决方法是将I2C1管脚重映射到PB8和PB9上去

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

方案2. 使用CUBEMX将管脚映射到PB8和PB9上去,但是烧录完后就无法继续烧录,用的是JLINK的4线制SWD(VCC,SWDIO,SWCLK,GND),必须将RESET引脚连到JLINK上才能正常烧录,请问是怎么回事,求助一下,
无标题6.png 这个工程用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
用这个软件擦除。

使用特权

评论回复
heisexingqisi| | 2017-12-21 12:03 | 显示全部楼层
以前我也遇到过没法再次写入的问题,我先擦干净芯片,重新写就可以了。

使用特权

评论回复
zwmasdf|  楼主 | 2017-12-21 12:06 | 显示全部楼层
fengfeng的恒 发表于 2017-12-21 11:59
有可能是SWD接口被禁用了。

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

使用特权

评论回复
zwmasdf|  楼主 | 2017-12-21 12:06 | 显示全部楼层
heisexingqisi 发表于 2017-12-21 12:01
你先擦除试试看,能否擦除。

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

使用特权

评论回复
zwmasdf|  楼主 | 2017-12-21 12:07 | 显示全部楼层
heisexingqisi 发表于 2017-12-21 12:02
STM32 ST-LINK Utility
用这个软件擦除。

我只有JLINK

使用特权

评论回复
fengfeng的恒| | 2017-12-21 17:22 | 显示全部楼层
我觉得你应该把SYS选项里改为no debug

使用特权

评论回复
zwmasdf|  楼主 | 2017-12-21 20:03 | 显示全部楼层
fengfeng的恒 发表于 2017-12-21 17:22
我觉得你应该把SYS选项里改为no debug

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

使用特权

评论回复
mmuuss586| | 2017-12-21 21:44 | 显示全部楼层
感谢分享;

使用特权

评论回复
huangcunxiake| | 2017-12-22 14:05 | 显示全部楼层
是什么问题啊?

使用特权

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

本版积分规则

4

主题

50

帖子

1

粉丝