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

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 41 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 9 2021 // после установки в 1 флага RXNE регистра SPI1_SR while(!(SPI1->SR & SPI_SR_RXNE)) { } // читаем данные из регистра SPI1_ DR if (SPI1->DR !=0b11111110) // если кодовая комбинация не получена GPIOB->ODR= (0<<0)|(0<<1); // посылаем лог. 0 на линии PB0 и PB1 порта PB else if (SPI1->DR==0b11111110) // если кодовая комбинация получена {while (1) // бесконечный цикл {GPIOB->ODR=(1<<0)|(0<<1); // включить светодиод D1 delay(10); // задержка GPIOB->ODR=(0<<0)|(1<<1); // погасить светодиод D1 и включить светодиод D2 delay(10); } } } // задержка В Proteus программа инициализации микроконтроллера вводится на вклад- ке Source Code. Для её открытия выделя- ют левой кнопкой мыши символ веду- щего микроконтроллера в рабочем поле схемного проекта, правой кноп- кой мыши вызывают контекстное меню и выбирают в нём пункт Edit Source Code. В результате откроется окно New Firmware Project (см. рис. 5), в котором устанавливают следующие параметры: ● Family – семейство микроконтролле- ра (Cortex-M3); ● Controller – модель микроконтрол- лера (STM32F103C4); ● Compiler – компилятор (GCC for ARM); ● Create Quick Start Files – автоматиче- ское создание заготовки программ- ного кода для микроконтроллера (установим флажок в поле). Когда все значения установлены, нажмём на кнопку ОК, в результате в проект будет добавлена вкладка Source Code, на которой и необходимо вве- сти код программы управления веду- щим микроконтроллером (см. рис. 6а). Перейти на вкладку для написания программы инициализации ведомого микроконтроллера (см. рис. 6б) мож- но таким же образом, как и для веду- щего, однако в этом случае на вкладку будет добавлена отдельная закладка. После того как в рабочей области проекта собрана схема, а на вклад- ке Source Code введён код программы для всех микроконтроллеров проек- та, кнопкой Run the simulation (кноп- ка находится в левом нижнем углу окна программы) можно запустить модели- рование (см. рис. 7). Для компиляции кода программы, написанного на язы- ке программирования С, для микрокон- троллеров STM32 Cortex-M3 в Proteus применяется компилятор GCC for ARM. Проанализируем работу демонстра- ционной схемы, представленной на рис. 7. На вкладке Source Code про- граммным путём были даны указания ведущему микроконтроллеру через интерфейс SPI1 отправить ведомому микроконтроллеру кодовую комбина- цию. Программа ведомого микрокон- троллера находится в ожидании уста- новки в 1 флага RXNE регистра SPI1_SR. Как только по интерфейсу SPI1 полу- чена кодовая комбинация от ведущего микроконтроллера, запускается под- программа, которая даёт указания Рис. 6. Вкладка Source Code, код программы инициализации: ведущего микроконтроллера (а) и ведомого микроконтроллера (б) Рис. 7. Моделирование передачи данных между двумя микроконтроллерами STM32F103C4 через интерфейс SPI в программной среде Proteus а б

RkJQdWJsaXNoZXIy MTQ4NjUy