How did you create your project? It does not seem to be a CubeMX-generated project neither a System Workbench generated one, or at least you do not use the firmwares provided by ST; you should have includes of the firmware definition files for your microcontroller.
I don’t know what the TimerInit and TimerSetValue do exactly, but I wonder if they do not initialize the timer in one-shot mode... I don’t know either what the TimerLowPowerHandler is doing.Also, in send_message, I would probably just write
flagState ^= 1;