Современная электроника №8/2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 37 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 8 2021 int main(void) // начало програм- мы { init_USART(); // инициализация USART и GPIO send_USART(‘A’); // вывод на экран символа ‘A’ send_USART(‘B’); // вывод на экран символа ‘B’ send_USART(‘C’); // вывод на экран символа ‘C’ } После того как в рабочей области проекта собрана схема, а на вкладке Source Code введён код программы, можно запускать моделирование, для чего предусмотрена кнопка Run the simulation в левом нижнем углу окна программы. Как видно из рис. 6, раз- работанный проект функционирует верно: на экран виртуального терми- нала была выведена указанная в коде программы комбинация символов. На этомже рисунке показана осциллограм- ма работы USART. Для подключения виртуально- го осциллографа к схеме использу- ется его пиктограмма. Для настрой- ки прибора и наблюдения формы исследуемого сигнала предназначе- на лицевая панель, которая открыва- ется после запуска симуляции схемы. В её левой части расположен графиче- ский дисплей, который предназначен для графического отображения фор- мы сигнала (напряжения по вертикаль- ной оси и времени по горизонтальной оси). Панель управления осциллографа находится в правой части его лицевой панели и предназначена для настрой- ки отображения измеряемого сигнала. Результаты работы четырёхканального осциллографа отображаются на экране графического дисплея в виде четырёх кривых, которые представляют четыре сигнала со входов А, В, C, D. Для полу- чения осциллограммы работы модуля USART настроим параметры осцилло- графа так, как показано на рис. 6. Так как в микроконтролле- ре STM32F103C4 имеется 3 модуля USART, при написании программно- го кода необходимо указывать номер модуля, к которому мы обращаемся. В нашем примере это USART1. Про- грамма инициализации микрокон- троллера содержит три функции: int init_ USART(), void send_USART(char value), int main(void). В функции int init_ USART() выполняется включение тактирования модуля USART1 и пор- та РА (команды RCC->APB2ENR |= RCC_ APB2ENR_USART1EN и RCC->APB2ENR |= RCC_APB2ENR_IOPAEN), настройка режима работы вывода РА9 (коман- да GPIOA->CRH = 0x00000090), вклю- чение модуля USART1 и передатчи- ка (команды USART1->CR1 = (1<<13) и USART1->CR1 |= (1<<3)). В функции void send_USART(char value) выпол- няется проверка 6 и 7 бита регистра USART1_SR (команда while ( USART1- >SR = = ((0<<6)|(0<<7)) ) { }) – как толь- ко его флаги TXE и TC установятся в 1, начнётся передача данных (команда USART1->DR = value). Из функции int main(void) выполняется вызов функ- ций инициализации и вывода данных. В микроконтроллере STM32F103C4 линии ввода/вывода, в зависимости от настроек, могут быть общего назначе- ния (GPIO) либоиспользоваться как спе- циальные. Настройка портов GPIO для цифровоговвода/вывода требует выпол- Рис. 5. Настройка параметров: (а) Crystal Frequency микроконтроллера STM32F103C4 и (б) Baud Rate, Data Bits, Parity, Stop Bits виртуального терминала Рис. 4. Открытие панели INSTRUMENTS с помощью пиктограммы Virtual Instruments Mode а б

RkJQdWJsaXNoZXIy MTQ4NjUy