求助关于STM8S怎样在程序中设定Option Byte的值

2019-12-26 18:51发布

各位大大我是个初学的,现在每次写片都是手动改Option的值,怎样在程序中将Option的值固定,这样就不需要每次写片都要更改了,不喜欢用库文件的方法,我用的是 COSMIC for STM8 编译器,所以各位大大指导一下!!!拜谢!!
16条回答
way2888
2019-12-27 03:48
void ProgramOptionByte(u16 address,u8 *buf,u16 number)
{   FLASH_DUKR= 0xae;
    FLASH_DUKR= 0x56;
    FLASH_CR2_bit.OPT= 1;
    FLASH_NCR2_bit.NOPT= 0;
    for(u16 i=0;i<number;i++)
    {   *((u8*)(address+i)) = buf;   
    }
    while(!FLASH_IAPSR_bit.HVOFF);
    FLASH_CR2_bit.OPT= 0;
    FLASH_NCR2_bit.NOPT= 1;
    FLASH_IAPSR_bit.DUL= 0;
}

应用:
    u8 buf[3];
    u8 x= BOOT_SIZE/SECTOR_SIZE-1;
    buf[0]= 0xaa;
    buf[1]= x;
    buf[2]= ~x;
    ProgramOptionByte(0x4800,buf,3)

一周热门 更多>