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

2019-12-26 18:51发布

各位大大我是个初学的,现在每次写片都是手动改Option的值,怎样在程序中将Option的值固定,这样就不需要每次写片都要更改了,不喜欢用库文件的方法,我用的是 COSMIC for STM8 编译器,所以各位大大指导一下!!!拜谢!!
15条回答
way2888
1楼 · 2019-12-27 11:03.采纳回答
这段代码只要运行一次就把选项字设置好了,你只要把设置值赋给buf就行了,至于已设置了,你检查一下就可以避免重设
xiayc0917
2楼-- · 2019-12-26 23:13
各位是觉得我的问题太弱智,给些提示吗?
bigZ
3楼-- · 2019-12-26 23:36
源程序生产的HEX不包含OPT信息,所以。。。
way2888
4楼-- · 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)
xiayc0917
5楼-- · 2019-12-27 06:57
 精彩回答 2  元偷偷看……
xiayc0917
6楼-- · 2019-12-27 14:04
way2888 老兄如果重复设置会有什么后果?
wanyou132
7楼-- · 2019-12-27 18:21
mark

一周热门 更多>