STM8微控制器的FLASH儲存u16型別的陣列

2021-10-06 13:20:06 字數 1032 閱讀 9315

往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...