STM32單片機(jī)串口一鍵下載電路與操作方法詳解
在此介紹STM32單片機(jī)串口一鍵下載電路與操作方法詳解。
本文引用地址:http://butianyuan.cn/article/201808/384877.htmSTM32三種啟動(dòng)模式對(duì)應(yīng)的存儲(chǔ)介質(zhì)均是芯片內(nèi)置的,它們是:
1)用戶閃存 = 芯片內(nèi)置的Flash。
2)SRAM = 芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。
3)系統(tǒng)存儲(chǔ)器 = 芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時(shí)在這個(gè)區(qū)域預(yù)置了一段Bootloader,就是通常說的ISP程序。這個(gè)區(qū)域的內(nèi)容在芯片出廠后沒有人能夠修改或擦除,即它是一個(gè)ROM區(qū)。
要了解STM32的幾種啟動(dòng)模式.
BOOT0接GND,BOOT1接GND.那就是正常的啟動(dòng)模式,從flash加載代碼.
而BOOT0接V3.3,BOOT1接GND.則是ISP模式,也就是串口更新代碼.
其次,你要了解STM32 ISP下載代碼的過程.
首先BOOT0接V3.3,然后復(fù)位STM32.STM32就會(huì)加載ISP代碼(固化存儲(chǔ)在內(nèi)部),從而進(jìn)入ISP模式.此時(shí)便可以通過串口下載程序了.
最后再來看看一鍵下載是怎么實(shí)現(xiàn)的呢?
從原理圖可知:DB9串口的RTS控制BOOT0,DTR控制RST.
我們要達(dá)到下載的目的,就必須先讓RTS拉高BOOT0(設(shè)置BOOT0為1),然后再讓DTR控制RST為低(STM32為低電平復(fù)位).然后再釋放RTS為高(停止復(fù)位),然后再開始串口下載代碼(此時(shí)BOOT0可以為高,也可以為低).
所以我們看到mcuisp連接過程是:
DTR電平置高(3-12V),復(fù)位(DTR接了RST)
RTS置低(-3--12V),選擇進(jìn)入BootLoader(RTS接了BOOT0)
...延時(shí)100毫秒
RTS電平變高(+3-+12V)釋放復(fù)位(釋放復(fù)位,但是此時(shí)BOOT0為高,所以進(jìn)入ISP模式)
開始連接...4, 接收到:1F (連接成功)
在串口COM0連接成功@230400bps,耗時(shí)437毫秒
DTR維持高
【需要注意的是 DTR_N是DTR的反相電平 RTS_N是RTS的反相電平】
注:此電路不需要USB轉(zhuǎn)串口芯片,只要一個(gè)普通的DB9串口就可以完成程序下載工作。對(duì)于那些只有串口的單片機(jī)控制板無疑是一個(gè)完美的選擇。
- STM32單片機(jī)中文官網(wǎng)
- STM32單片機(jī)官方開發(fā)工具
- STM32單片機(jī)參考設(shè)計(jì)
評(píng)論