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 выдает данные.
Документация
2.8.0 от 26.07.2024