原因:我把PA、PE的
錯誤代碼
//MODE:輸入
GPIOA->MODER &= (0x3 << (2*0)); //清零
GPIOE->MODER &= (0x3 << (2*2))|(0x3 << (2*3))|(0x3 << (2*4));
這樣導致了其他位被置爲0了,而需要更改的位卻沒有更改
這裏剛好把 SWDIO 端口占用了,導致發現不了設備
錯誤代碼導致的結果
SWDIO所需端口被修改了模式,導致用不了SW協議
正確代碼
//MODE:輸入
GPIOA->MODER &= ~(0x3 << (2*0)); //清零
GPIOE->MODER &= ~(0x3 << (2*2))|(0x3 << (2*3))|(0x3 << (2*4));
這樣纔是把需要的位置0
解決方法:
改爲“連接調試燒寫器時就復位
然後燒寫正常的代碼試試,可以的話再把原來的代碼改正後燒寫。
改成這樣的副作用:接上就直接復位了