Здравствуйте. Я разрабатываю программу на базе микроконтроллера STM32F417. У меня возникла проблема следующего характера. В одной части своей программы мне необходимо запретить DMA исполнение. Делаю я это стандартным способом
Код
DMA_Cmd(DMA1_Stream5, DISABLE);
while(DMA1_Stream5->CR & DMA_SxCR_EN);
Однако программа в цикле застревает навечно. Если же я в отладчике пошагово исполняю этот кусок кода, то без проблем прохожу цикл.
Если же я изменяю уровень оптимизации с O3 на O1, то программа начивает застревать раньше в подобном же блоке
Код
DMA_Cmd(DMA2_Stream0, DISABLE);
while(DMA2_Stream0->CR & DMA_SxCR_EN);
, который раннее при оптимизации O3 программа проходила без проблем. Прошу помощи в разрешении данной проблемы.