STM8不用手動復位進入自帶Bootloader方法(串口下載)


源:STM8不用手動復位進入自帶Bootloader方法(串口下載)

STM8不用手動復位進入自帶Bootloader方法(串口下載)
除非STM8片子的空的,如果復位運行的是自帶Bootloader,而且要通過串口下載程序的話,必須在1s內點擊上位機,要不然就運行用戶程序了。 這一步很麻煩,所以想把它給省掉。 后來發現上位機Flash Loader Demonstrator在啟動畫面點擊Next后,會先從串口的DTR、RTS輸出一個大概100多毫秒的脈沖,TTL電平就是負脈沖了,之后才會和單片機通信。 所以只要按照下面的圖接線,如果單片機復位運行的是自帶Bootloader,只要在Flash Loader Demonstrator啟動畫面點擊Next,軟件就會復位單片機,不用自己手動復位再點擊Next就可以和單片機通信了。

還有就是下載STM8S或STM8L時候的Flash Loader Demonstrator啟動畫面設置不一樣

STM8S是這樣:

STM8L是這樣:

還有關於復位是否運行自帶Bootloader,至少符合下面兩個條件之一就可以了

1、器件是空的(新買的就是空的)

2、optionbyte里的Bootloader是Enable的

新的器件optionbyte里的Bootloader是disable的,為了能不止一次使用串口下載程序,第一次下載的程序必須修改optionbyte使得Bootloader Enable

這是STM8S的程序:

#include "iostm8.h" 

void main(void) 
{    
    FLASH_DUKR = 0xae;     
    asm("nop");     
    FLASH_DUKR = 0x56;     
    asm("nop");     
    while(!(FLASH_IAPSR & 0x08));     
    asm("nop");     
    FLASH_CR2 = 0x80;     
    asm("nop");     
    FLASH_NCR2 = 0x7f;     
    asm("nop");     
    *((unsigned char *)0x487e) = 0x55;     
    asm("nop");     
    *((unsigned char *)0x487f) = 0xaa;    
    while(1); 
} 

 

點擊此處下載 STM8S_BL_EN.rar (12.95 KB)

這是STM8L的程序:

#include "iostm8L152c6.h" 

void main(void) 
{     
    FLASH_DUKR = 0xae;     
    asm("nop");     
    FLASH_DUKR = 0x56;                  // 解除寫保護     
    asm("nop");     
    while(!(FLASH_IAPSR & 0x08));       // 等待解鎖     
    asm("nop");     
    FLASH_CR2 = 0x80;                   // 對選項字節進行寫操作     
    asm("nop");     
    *((unsigned char *)0x480b) = 0x55;     
    asm("nop");     
    *((unsigned char *)0x480c) = 0xaa;  // 寫入選項字節     
    while(1); 
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM