當前位置:編程學習大全網 - 編程語言 - 怎樣編程操作stm8的option byte

怎樣編程操作stm8的option byte

1.選項字節的概念(參考stm8s中文數據手冊):

選項字節包括芯片硬件特性的配置和存儲器的保護信息,這些字節保存在存儲器中壹個專用的

塊內。除了ROP(讀出保護)字節,每個選項字節必須被保存兩次,壹個是通常的格式(OPTx)和

壹個用來備份的互補格式(NOPTx)。可以在ICP模式(通過SWIM)下訪問下表中EEPROM的地址來修改選項字節。

選項字節也可以通過應用程序在IAP模式下修改,但是ROP選項只能在ICP模式(通過SWIM)下被

修改。

2.ISP IAP ICP的概念(有待學習):

ISP:In System Programing, ?在系統編程 ? 程序完全下載

IAP:In applicating Programing,在應用編程 ? 我的理解是用應用程序去修改芯片裏邊固定的壹些數據(與應用編程無關的數據)

ICP:In Circuit Programing, 在電路編程 ?

3.stm8s芯片的備用功能重映射:

stm8s芯片上帶有很多備用的功能,這些功能必須使用重映射功能才能實現,

重映射其實就是配置某個flash地址的某壹位,使某個引腳具備備用功能或者默認功能的其中壹個

而且壹旦功能改,想恢復原來的功能必須重新寫入。

比如stm8s的PD4端口具有TIM2_CH1 功能和BEEP功能,默認的情況下是TIM2_CH1功能,

當我們要用到BEEP功能時必須寫選項字,將這個引腳重映射為BEEP功能。

4.庫函數實現重映射

//對於stm8s的選項字地址為0x4803

#define?Beep_OptionAdd?0x4803

void?Set_Beep_OptionByte(void)

{

uint16_t?Beep_Option_status;/*記錄激活備選功能Beep/TIM2_CH1的狀態*/

Beep_Option_status=FLASH_ReadOptionByte(Beep_OptionAdd);

/*Beep_Option_status的最高位為1激活了Beep,否則不激活,為TIM2_CH1*/

if((Beep_Option_status&0x8000))

{

FLASH_ProgramOptionByte(Beep_OptionAdd,?(uint8_t)(Beep_Option_status&0x7fff));

/*向Beep_OptionAdd?0x4803?置0,不激活激活了Beep,恢復TIM2_CH1通道*/

}

}

  • 上一篇:什麽是demo?麻煩告訴我
  • 下一篇:廣州市讀什麽職中好?
  • copyright 2024編程學習大全網