Для тех кто читает эту ветку, была такая же ситуация , есть 2 основные причины: 1) не настроены задержки flash, если большая частота то улетает в HardFault . 2) какое либо прерывание которое возникает часто, что не дает основному коду двигаться , т.к если обращаться через далекий адрес, то чтение дольше и получается вы обратились к адресу а вас опять опять на прерывание кинуло, у меня так с таймером было , уменьшил количество его вызовов и все поехало