新聞中心

stm32 升級(jí)程序方案

作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
STM32芯片自帶固化的ISP程序,在芯片上電的時(shí)候會(huì)檢查BOOT0BOOT1電平狀態(tài),如果
BOOT0=1
BOOT1=0
則會(huì)進(jìn)入自帶的ISP程序,基本可以滿足程序升級(jí)需要。
但是如何進(jìn)入這個(gè)模式,是一個(gè)問題,網(wǎng)上有人使用串口的握手信號(hào)來控制,但是這樣會(huì)超過3條線(RXTXGND)。
昨天測試了一個(gè)方法,上位機(jī)發(fā)出一個(gè)指令,STM32用戶自己的程序解析后,利用自己的IO口,控制一個(gè)簡單的延時(shí)電路來拉高BOOT0,然后芯片重新啟動(dòng),則進(jìn)入ISP。刷新完成后,跳入用戶程序運(yùn)行,控制權(quán)交回用戶程序。
程序中設(shè)置PB8為ISP_DRV,推挽輸出;輸出一定時(shí)間后,充滿電容后,可以使用NVIC_SystemReset()重新啟動(dòng)(3.12庫)。即可進(jìn)入ISP模式。
另外,需要在程序中設(shè)置如下向量表地址,才可以在勾選ISP程序的jumptouserapplicationafterflash后,進(jìn)入用戶程序。
/*SettheVectorTablebaselocationat0x08000000*/
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);

測試了若干次沒有發(fā)現(xiàn)異常。


關(guān)鍵詞: stm32升級(jí)程

評(píng)論


技術(shù)專區(qū)

關(guān)閉