昨天调试一块STM32L151的板子,用的是JlinkOB,调试时,出现下面的错误:
JLink Error:could not start CPU core.
JLink Warning:CPU could not be halted
这个错误出现的原因是,程序中有修改JTAG端口(PA13,PA14)的语句,当把JTAG当做普通IO口时,JLink就不能返回调试信息,JLink就读不回相应寄存器的值了。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); //完全失能JTAG/SWD
解决思路:
我们刚才既然把“错误”的程序写入了用户Flash,那么我们就用“正确”的程序去覆盖之间的程序。
解决方法:
1.修改BOOT0=1,BOOT1=0,STM32从system memory启动,这时用串口将程序下载进去,程序就会写入用户Flash&#x