針對STM32系列單片機烤礁,大家一般采用STLink和Jlink來下載程序关翎,這里我們試一下CH340 USB轉串口芯片的下載方法,主要是將Boot電平設置好沐祷。
采用:STM32F103C6T6芯片microUSB 接口連上電腦嚷闭,com3端口
環(huán)境:Win10,提前安裝好CH340/341系列的驅動
針對BOOT0和BOOT1的不同接線方式(高電平赖临,低電平胞锰,不接線),開發(fā)板的下載情況分析如下圖:(“x”代表不接線兢榨,“√”代表能成功下載)
首先對BOOT0與BOOT1如何連接及連接方式介紹一下嗅榕。
STM32 單片機的BOOT0 和BOOT1 應用原理
STM32 三種啟動模式對應的存儲介質均是芯片內置的,它們是:
1)主閃存存儲器= 芯片內置的Flash吵聪。這也是正常工作模式
2)SRAM = 芯片內置的RAM 區(qū)凌那,就是內存啦。
3)系統(tǒng)存儲器= 芯片內部一塊特定的區(qū)域吟逝,芯片出廠時在這個區(qū)域預置了一段Bootloader帽蝶,就是通常說
的ISP 程序。這個區(qū)域的內容在芯片出廠后沒有人能夠修改或擦除块攒,即它是一個ROM 區(qū)励稳。
在每個STM32 的芯片上都有兩個管腳BOOT0 和BOOT1,這兩個管腳在芯片復位時的電平狀態(tài)決定了芯片復
一般不使用內置SRAM 啟動(BOOT1=1 BOOT0=1)囱井,因為SRAM 掉電后數據就丟失驹尼。
一般BOOT0 和BOOT1 跳線都跳到0(地)。只是在ISP 下載的情況下庞呕,BOOT0=1新翎,BOOT1=0 ,下載完成后千扶,把BOOT0 的跳線接回0料祠,也即BOOT0=0骆捧,BOOT1=0 澎羞,也可以不用更改
我們在這里采用CH340串口燒寫下載程序,BOOT0和BOOT1分別設置為1和0敛苇,下載后可直接運行妆绞,但復位后代碼不執(zhí)行顺呕,可以在調試過程中,不用頻繁更改boot電平
注意:如果JTAG 相關的引腳被用作普通IO括饶,將無法下載(BOOT0 為低電平的情況下)株茶。解決辦法是用串口下載一次程序后再用JLINK 下載,或者將BOOT0 配置成高電平后下載图焰。
Keil5中代碼STM32單片機C語言代碼如下:
編譯好后启盛,在FlyMcu軟件進行下載:
將Boot電平設置好,
選好要下載的.hex文件技羔,設置為STMISP
DTR的低電平復位僵闯,RTS高電平進BootLoader
點擊開始編程,結果如下圖:
耗時1.5s左右藤滥,寫入1kb,下載完后鳖粟,可看到STM 32 單片機開始執(zhí)行程序,小燈開始閃爍(5mm黃色發(fā)光二極管拙绊,插在面包板上向图,正極(白色公專轉母杜邦線)接A0引腳,負極接GND引腳(黑色公專轉母杜邦線)标沪,其間串聯(lián)一個220Ω的色環(huán)電阻)
效果如下圖:
參考:
STM32 單片機的BOOT0 和BOOT1使用注意事項
STM32 BOOT0和BOOT1對于下載程序的應用
關于STM32單片機的兩引腳BOOT0和BOOT1的詳細說明
STM32 ~ CH340在STM32實現(xiàn)一鍵下載電路