STM32F0 在軟件程序中寫讀保護選項字節(Option Bytes)

單片機:STM32F030

庫:HAL庫

目標:在程序軟件中修改讀保護選項字節,這樣程序下載進去之後就自動保護了,不用再在ST-LINK中修改選項字節了

注意事項:寫選項字節,除了解鎖OB,還要解鎖FLASH,開始只解鎖OB,沒解鎖FLASH,一直調試不成功

    static FLASH_OBProgramInitTypeDef OptionsBytesStruct;

    //解鎖Flash
	HAL_FLASH_Unlock();
	//解鎖選項字節區	
	HAL_FLASH_OB_Unlock();
	//讀取選項字節設置
	HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct);
	//檢測RDP的設置是否低於LEVEL 1
	if(OptionsBytesStruct.RDPLevel < OB_RDP_LEVEL_1)
	{
		//重寫選項字
		OptionsBytesStruct.OptionType   = OPTIONBYTE_RDP;
		OptionsBytesStruct.RDPLevel		= OB_RDP_LEVEL_1;	
		//如果寫入沒成功
		if(HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK)
		{
			//紅燈快速閃爍
			while(1)
			{
				LED_RED_ON();
				DelayMs(100);
				LED_RED_OFF();
				DelayMs(100);
			}
		}
		else
		{
			//紅色LED顯示短短長
			LED_RED_ON();
			DelayMs(200);
			LED_RED_OFF();
			DelayMs(200);
			LED_RED_ON();
			DelayMs(200);
			LED_RED_OFF();
			DelayMs(200);
			LED_RED_ON();
			DelayMs(1000);
			//如果寫入成功,則復位加載選項字節
			HAL_FLASH_OB_Launch();
		}		
	}
	//鎖定選項字節
	HAL_FLASH_OB_Lock();
	HAL_FLASH_Lock();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章