2018-03-13keil调试代码时出现CONNOT ASSE
2018-03-13 本文已影响0人
飞速遗忘
stm32F103c8调试时,调用flash擦写函数会导致不能调试,删去擦除函数可调试。
(下面这段是错的,解决办法在末尾,当然你也可以看看眼,bug见多了自然无bug)
暂时的解决办法参考:http://blog.csdn.net/huruyiye_123/article/details/78849288
环境:win10,keil(HAL库)
上面链接里的解决办法:
在HAL_FLASHEx_Erase(&EraseInitStruct, &PageError)函数里面,增加1ms延时,能解决此问题。
图片.png
分析可能的原因是:调试时使用的管脚与程序初始化时的管脚相冲突,所以在添加1ms延时后正常。
注意看下面一段操作:
(现在有1ms延时,能调试)
- 去掉擦写函数,延时没有实际效果,所有正常;
- 加上擦写函数,延时多少都不行,不能调试;
我可能出现了幻觉!!(╯°口°)╯(┴─┴)
当你走投无路时可以试试延时一下。反正我现在这个就是不能擦写flash( ´_ゝ`)
然后我在keil工程里找*.map文件,打开后找Memory Map of the image发现我的代码从0x08000000写到地址0x08007300而我擦写flash的地址是0x08007000所以这才是原因所在。擦写地址与代码地址重叠导致Can not asess target。
ps:这短短的几分钟大起大落和坐过山车一样,真是代码如戏。