STM32duino. Часть 2

Продолжим краткий обзор работы с stm32 в Arduino IDE.

На платах Ардуино обозначено, какие пины можно использовать для считывания аналоговых сигналов, какие генерируют ШИМ и т.д. На blue pill такого нет и мы должны посмотреть распиновку (кликабельно, оригинал: здесь).

Bluepillpinout

Можно увидеть, что, например, аналоговые сигналы считываются портами, помеченные зеленым (PA0 — PB1), шим — волнистой линией (PA8 — PA10 и другие), обозначены таймеры, интерфейсы и т.д. Обратите внимание на то, что stm32, в отличие от Arduino — 3-вольтовая система. Не стоит на нетолерантные к пяти вольтам порты подавать 5 и больше вольт.

Посмотрим, что для stm32 есть нового, чего не было в Arduino.

Начнем с режимов порта. В Arduino преимущественно использовались два — INPUT и OUTPUT. Также, полезным является INPUT_PULLUP, но нужно иметь в виду, что значения входящих сигналов при этом инвертированы, т.к. идет подтяжка к 5 вольтам.

В stm32 режимов намного больше, наиболее интересные:

  • OUTPUT — обычный выход
  • INPUT — цифровой вход
  • INPUT_ANALOG — аналоговый вход
  • INPUT_PULLUP — вход, задействующий встроенный подтягивающий резистор (+3.3 v). Сигнал будет инвертирован.
  • INPUT_PULLDOWN — вход, задействующий встроенный стягивающий резистор (0 v).
  • PWM — для генерации ШИМ.

Теперь команды. Помимо digitalWrite, digitalRead, analogWrite, analogRead есть еще pwmWrite — отправляет ШИМ-сигнал

Обратите внимание вот на что. В Arduino 10-битный аналогово-цифровой преобразователь (т.е. считывая аналоговый сигнал мы получаем 8-битное значение, от 0 до 1023). В stm32 АЦП 12-битный, т.е.значения от 0 до 4095.

Ардуино генерирует 8-битный ШИМ-сигнал (0-255), stm32 — 16-битный (0-65535).

Рассмотрим пару примеров.

Первый. При нажатии на кнопку будем то включать, то выключать светодиод. Кнопка будет подключаться без внешнего резистора — одна нога к 3.3 v, другая к порту B1, светодиод встроенный.

Второй. Будем потенциометром регулировать яркость светодиода. Тут уже понадобится внешний светодиод. Потенциометр подключите к порту B1 и 3.3 v, светодиод на порт A3.

 

 

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *