stm32F103c8調(diào)試時所森,調(diào)用flash擦寫函數(shù)會導(dǎo)致不能調(diào)試焕济,刪去擦除函數(shù)可調(diào)試晴弃。
(下面這段是錯的,解決辦法在末尾肝匆,當(dāng)然你也可以看看眼旗国,bug見多了自然無bug)
暫時的解決辦法參考:http://blog.csdn.net/huruyiye_123/article/details/78849288
環(huán)境:win10,keil(HAL庫)
上面鏈接里的解決辦法:
在HAL_FLASHEx_Erase(&EraseInitStruct, &PageError)函數(shù)里面注整,增加1ms延時能曾,能解決此問題肿轨。
圖片.png
分析可能的原因是:調(diào)試時使用的管腳與程序初始化時的管腳相沖突,所以在添加1ms延時后正常椒袍。
注意看下面一段操作:
(現(xiàn)在有1ms延時驼唱,能調(diào)試)
- 去掉擦寫函數(shù)驹暑,延時沒有實際效果玫恳,所有正常;
- 加上擦寫函數(shù)优俘,延時多少都不行京办,不能調(diào)試帆焕;
我可能出現(xiàn)了幻覺!财饥!(╯°口°)╯(┴─┴)
當(dāng)你走投無路時可以試試延時一下。反正我現(xiàn)在這個就是不能擦寫flash( ′_ゝ`)
然后我在keil工程里找*.map文件,打開后找Memory Map of the image發(fā)現(xiàn)我的代碼從0x08000000寫到地址0x08007300而我擦寫flash的地址是0x08007000所以這才是原因所在打颤。擦寫地址與代碼地址重疊導(dǎo)致Can not asess target暴拄。
ps:這短短的幾分鐘大起大落和坐過山車一樣编饺,真是代碼如戲透且。