本帖最后由 lc115647 于 2024-10-5 18:26 编辑
在擦写使用Flash过程可能会出现误操作,使flash出现保护操作
(1)在开始菜单的SEGGER-J-LINK下找到J-Link Commander打开,在开始菜单中无法找到的话可在SEGGER-J-LINK安装目录下找到JLink.exe打开。---建议使用V6.80版本,有些过高版本可能会出现失败
(2)在终端中按提示首先输入 connect回车
(3)在出现Device>后输入
- APM32F103TB回车
- 然后出现选择调试接口提示,这里直接输入
- S回车
- 在出现的选择通讯速率设置时可直接回车选择默认
(4)之后J-Link会连接到APM32F103TB出现如下界面
(5)之后逐条输入如下命令即可解锁读保护:
w4 40022004 45670123 w4 40022004 CDEF89AB w4 40022008 45670123 w4 40022008 CDEF89AB w4 40022010 00000220 w4 40022010 00000260 w4 40022010 00000200 w4 40022010 00000210 w4 1ffff800 FFFF00A5 w4 40022010 00000200
(6)逐条执行以上命令后,在命令行直接输入r回车,则可看到J-Link又可以正常连接到APM32F103TB了
(7)这里对以上几个命令做简要说明,以便于参考解决其它型号单片机的问题。
w4为J-link Commander中写寄存器命令,表示的时写一个4字节数据, w4后紧跟要写入的目标寄存器地址,然后是要写入的数据。 w4 40022004 45670123 w4 40022004 CDEF89AB 是对FMC解锁,相当于库中函数fmc_unlock() w4 40022008 45670123 w4 40022008 CDEF89AB 是对ob进行解锁,相当于ob_unlock() w4 40022010 00000220 置位FMC_CTL寄存器中的OBER位(选项字节擦除命令位) w4 40022010 00000260 置位FMC_CTL寄存器中的START位(向FMC发送擦除命令位 ) w4 40022010 00000200 清除FMC_CTL寄存器中的OBER位 w4 40022010 00000210 置位FMC_CTL寄存器中的OBPG位(选项字节编程命令位) w4 1ffff800 FFFF00A5 写选项字节的前4个字节,A5即是表示解除读保护 w4 40022010 00000200 清零FMC_CTL寄存器中的OBPG位
|