往flash寫資料
void
flash_writenbyte
(uint16_t* pbuffer, uint32_t writeaddr, uint8_t nbyte)
flash_lock
(flash_memtype_data)
;//上鎖
}
讀取flash裡面的資料
void
flash_readnbyte
(uint16_t* pbuffer, uint32_t readaddr, uint8_t nbyte)
pbuffer[0]
= tbuffer[0]
*256
+tbuffer[1]
; pbuffer[1]
= tbuffer[2]
*256
+tbuffer[3]
; pbuffer[2]
= tbuffer[4]
*256
+tbuffer[5]
;}
注意讀取的資料位數是寫入資料位數的兩倍
主函式測試**
#include
"stm8s.h"
#include
"stm8s_clk.h"
u16 writebuf[3]
; u16 readbuf[3]
;void
flash_writenbyte
(uint16_t* pbuffer, uint32_t writeaddr, uint8_t nbyte)
;void
flash_readnbyte
(uint16_t* pbuffer, uint32_t readaddr, uint8_t nbyte)
;void
main
(void
)}
測試的時候用**中間打斷點然後看陣列資料
斷電 然後遮蔽掉寫函式,再看能不能讀到資料
STM8 系列微控制器命名規則
stm8 命名規則示列 stm8s005k6t6c 代表的意義為 超值型 stm8 核心 可以理解為8 位51 增強型核心 mcu,lqfp 32 封 裝,32kb flash 容量,溫度範圍 40 85 工業級 具體分解如下 stm8 微控制器包括以下幾個系列 stm8 8 位mcu stm8a ...
STM8 微控制器除錯筆記
1 休眠喚醒後串列埠異常問題 stm8l主要用來做低功耗產品,這裡就有休眠前跟喚醒後有差異的情況,在除錯的時候碰到如果使用串列埠,在休眠前都正常,當喚醒後,串列埠傳送的資料會出現異常的情況,傳送的資料感覺會有丟幀。後來發現跟系統時鐘有關,如果系統時鐘採用外部時鐘就會有問題,內部時鐘就ok。這裡要用內...
STM8微控制器時鐘
時鐘樹 時鐘源有四種 外部高速晶振 hse 1 16mhz 內部高速rc振盪器 hsi 16mhz 外部低速晶振 lse 32.768 內部低速rc振盪器 lsi 38khz 系統預設配置的時鐘為hsi的8分頻既2mhz 外部時鐘配置hse clk deinit 復位所有時鐘暫存器 clk hsic...