Posted on October 07, 2016 at 17:18Hi.
You can program Flash by half-word each time. Location must be erased before programming. (erased state is 0xFFFF). If it is not, warning bit in FLASH->SR register is set. One exception is when you can program a non-erased location - this is when you program 0x0000. Regardless previous state, the location will be programmed to 0x0000.
Regarding to your question. No, it is not necessary to erase the whole page before programming. Just make sure that a location where you want to write is erased (0xFFFF).