Недавно столкнулся с проблемой. Электромагнитные помехи от STM32F205VET6 влияют (не в лучшую сторону) на приём сигналов от GPS и ГЛОНАСС спутников. Был произведён эксперимент. Программа зациклена "вайлом" в самом начале (после настройки тактирования) и с помощью замыкания NRST микроконтроллера на землю выяснено, что в таком виде микроконтроллер не влияет на сигнал. Если зацикливаться чуть позже, то при включении микроконтроллера уровень сигнала резко падает, однако влияет не периферия микроконтроллера, а конфигурация (размещение в памяти???) кода:
В данном случае при включении микроконтроллера уровень сигнала не падает:
Код
asm("BLX %0"::"r"(&at45f_init));
int at45f_init(void)
{
while(1) {;}
}
int at45f_init(void)
{
while(1) {;}
}
В этом случае при включении микроконтроллера сигнал заметно ухудшается:
Код
asm("BLX %0"::"r"(&at45f_init));
__NOP();
int at45f_init(void)
{
while(1) {;}
}
__NOP();
int at45f_init(void)
{
while(1) {;}
}
Я в тупике, почему это происходит. Возможно, кто сталкивался с похожей ситуацией?
Спасибо за ответы!