Программирование STM32. Часть 17: Драйвер UART

В прошлой части мы познакомились с таким интересным блоком в STM32, как UART. В этой статье мы не будем разбираться с простыми примерами (но это пока), а стразу познакомимся с библиотекой, которая позволяет удобным способом взаимодействовать с любым UART-ом в микроконтроллерах STM32F103xx. Ссылка на проект в конце статьи.

Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 16: USART

Многие из тех, кто имел какое-либо дело с микроконтроллерами, например, с PIC и AVR, знают про такую вещь, как UART. Universal asynchronous receiver transmitter — универсальный асинхронный приемопередатчик встроен как периферийное устройство в любой современный МК, причем в некоторых МК он представлен не в единственном экземпляре. Так же есть некоторая путаница в том, что есть UART, а что есть USART. Universal synchronous asynchronous receiver transmitter (USART) — универсальный синхронный/асинхронный приемопередатчик полностью повторяет функциональность UART, который работает в асинхронном режиме, и включает еще и синхронный режим. В этом случае связь между двумя устройствами USART немного напоминает интерфейс SPI: кроме сигналов RX и TX, добавляется еще один: CK, по которому идет тактовый сигнал от ведущего модуля USART, к ведомому. В данной статье мы рассмотрим самый простой и востребованный случай, а именно обычный асинхронный режим работы USART в микроконтроллере stm32f103c8. Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 15: Внешние прерывания EXTI

Внешние прерывания нужны для реакции прошивки МК на какие-либо быстро протекающие внешние события, которые проблематично регистрировать методом опроса состояния вывода GPIO. В stm32f103c8 для этих целей есть специальный блок EXTI, который мы рассмотрим в этой статье. Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 14: Прошиваем STM32 через ST-Link

Допустим, копая просторы Интернета, нашли мы очень интересное электронное устройство на микроконтроллере STM32, причем и все схемы, и прошивка прилагается. Но вот незадача, никогда мы не занимались загрузкой прошивки в STM32, раньше работали только с AVR-ками. Не беда! В этой статье мы разберемся в этом вопросе, ведь загружать готовую прошивку в STM32 не сложнее, чем в старые добрые AVR-ки, а может даже и проще! 😉 Итак, поехали! Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 13: Программатор ST-Link

По-хорошему, данную тему надо было затронуть еще во 2-й или 3-й части данного цикла статей. Но лучше поздно, чем ни когда, поэтому поехали! В этой части мы познакомимся с программатором ST-Link, с помощью которого можно загружать прошивку в микроконтроллер STM32 и производить отладку программного обеспечения. Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 12: Прерывания DMA

Итак, мы рассмотрели обмен с периферийными устройствами посредством DMA на примере передачи данных из памяти в интерфейс SPI и обратно, а так же с помощью DMA копировали один массив данных в другой. В этой части мы рассмотрим прерывания, которые может генерировать контроллер DMA. Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 11: Копирование массивов через DMA

В этой короткой части мы рассмотрим режим MEM2MEM и научится с помощью DMA копировать одну область памяти в другую. Все примеры, как и всегда, для микроконтроллера stm32f103c8. Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 10: SPI + DMA

В этой части мы перейдем к практике работы с DMA на примере интерфейса SPI, а именно рассмотрим передачу и прием данных по SPI в режиме Master с помощью контроллера DMA. Все примеры, как и всегда, для микроконтроллера stm32f103c8. Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 9: Описание регистров DMA

Так как предыдущая статья про DMA оказалась довольно большой, то описание регистров я решил вынести отдельной частью. Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее

Программирование STM32. Часть 8: DMA

Direct memory access (DMA), или прямой доступ к памяти (ПДП) используется для быстрой передачи данных между памятью и периферийным устройством, памятью и памятью, или между двумя периферийными устройствами без участия процессора. В микроконтроллере STM32F103c8 доступен один контроллер DMA1 с 7-ю каналами. DMA2 присутствует только в микроконтроллерах high-density и XL-density. Предыдущая статья здесь, все статьи цикла можно посмотреть тут: https://dimoon.ru/category/obuchalka/stm32f1.

Читать далее