CH32v103? FLASH(用戶選擇字 0x1FFFF800) 請(qǐng)發(fā)個(gè)讀寫例子
您好,在CH32V103 FLASH庫(kù)函數(shù)中有直接對(duì)用戶選擇字區(qū)域操作的函數(shù),如下圖,解鎖后直接調(diào)用該函數(shù)對(duì)用戶選擇字區(qū)域?qū)?yīng)地址寫入數(shù)據(jù)即可。讀的話直接讀該地址即可。
? ? ? 0x1FFFF810設(shè)置不上,請(qǐng)問(wèn)是什么原因?
代碼:??
? ? ? ? FLASH_Unlock();
? ? ? ? FLASH_EraseOptionBytes();
? ? ? ? FLASH_ProgramOptionByteData((uint32_t)0x1FFFF800,0xA5);
? ? ? ? FLASH_ProgramOptionByteData((uint32_t)0x1FFFF808,0xFF);
? ? ? ? FLASH_ProgramOptionByteData((uint32_t)0x1FFFF80A,0xFF);
? ? ? ? FLASH_ProgramOptionByteData((uint32_t)0x1FFFF810,0x01);
? ? ? ? printf("0x1FFFF800---------%08x\r\n", *(u32*)0x1FFFF800);
? ? ? ? printf("0x1FFFF808---------%08x\r\n", *(u32*)0x1FFFF808);
? ? ? ? printf("0x1FFFF810---------%08x\r\n", *(u32*)0x1FFFF810);
? ? ? ? FLASH_Lock();
? ? ? ? Delay_Ms(1000);
? ? ? ? printf("0x1FFFF810-%08x\r\n", *(u32*)0x1FFFF810);
? ? ? ? Delay_Ms(3000);
返回:
0x1FFFF800---------ffff5aa5
0x1FFFF808---------00ff00ff
0x1FFFF810---------ffffffff
0x1FFFF810-ffffffff
您好,用戶選擇可操作區(qū)域?yàn)?x1FFFF800到0x1FFFF80F,810超過(guò)這個(gè)區(qū)域了。后續(xù)若有問(wèn)題,可郵箱(lzs@wch.cn)溝通。
手冊(cè)里面不是說(shuō)有128字節(jié)的選擇字嗎,memory mapping里面也說(shuō)到0x1FFFF800-880。為什么說(shuō) FLASH_ProgramOptionByteData可操作區(qū)域?yàn)?x1FFFF800到0F。
您好,如下圖,V103僅下圖中區(qū)域可操作使用,其中存儲(chǔ)用戶數(shù)據(jù)一般放在Data0和Data1區(qū)域。若想要操作使用0x1FFFF810后面區(qū)域,可以使用V203系列,具體可參考下鏈接。后續(xù)若有問(wèn)題,可郵箱(lzs@wch.cn)溝通。