35928

[i] Почему периферийный блок работает в режиме отладки, но не работает в рабочем режиме?


Почему периферийный блок работает в режиме отладки, но не работает в рабочем режиме?

Например, при попытке установить связь с микроконтроллером К1986ВЕ1QI по интерфейсу RS-485 при запуске отладчика программа работает корректно. Но если запрограммировать микроконтроллер, а затем снять и подать питание на плату, то передача данных отсутствует.  

Материал из настоящей статьи, относящийся к микросхеме К1986ВЕ1QI, распространяется в том числе на микроконтроллеры К1986ВЕ1FI и К1986ВЕ1GI
Это связано с тем, что используется периферийный блок UART1 на выводах порта C, при этом не разрешено тактирование выводов этого порта в блоке тактовых частот.
.....
// 1. Включение тактирования для используемых входов/выходов
RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTA, ENABLE); // Тактирование выходов для управления драйвером линии RS-485
RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTB, ENABLE); // Тактирование входа от ПКИ
RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTD, ENABLE); // Тактирование выводов для UART1
......

Обычно отладчик может принудительно включать тактирование отдельных блоков, для того чтобы иметь возможность опросить регистры. Поэтому в режиме отладки UART1 выдает данные.

Документация

Теги

Был ли ответ полезным?