use API set the RDP to Level_2 :
if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS) != (uint8_t)OB_RDP_Level_2))
and read value from OPTCR_BYTE1_ADDRESS, send it to USART, make sure the RDP value has changed to 0xCC already.
but , why RDP no effect, the code can be read out by "Flash Loader Demonstrator" ?
How to protect code by program to prevent code is read out ?