STM8S003F3 internal flash debugging

Make a record here so that you can use it later

Check the document manual, the starting address of data eeprom is 0x004000, this is used to store some such as version number, ID, or flag bit for use

Sample code:

typedef enum {
    FLASH_MEMTYPE_PROG      = (u8)0x00, /*!< Program memory */
    FLASH_MEMTYPE_DATA      = (u8)0x01 /*!< Data EEPROM memory */
} FLASH_MemType_TypeDef;

int main()
{
    u32 addr = 0x4000;

    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

    while(1)
    {
        FLASH_Unlock(FLASH_MEMTYPE_DATA); //根据MemType填写

        FLASH_EraseByte(addr);

        FLASH_ProgramByte(addr, 0xa5);

        if(FLASH_ReadByte(addr) == 0xa5)
        {
            ;
        }

        FLASH_Lock(FLASH_MEMTYPE_DATA);

        delay_ms(500);
    }
}

Reference blog: https://blog.csdn.net/zhangxuechao_/article/details/77749823

Guess you like

Origin blog.csdn.net/smile_5me/article/details/114917940