Программный многозадачный таймер на STM32.

После начало освоения STM32 с применением библиотеки HAL и STM32Cube и наигравшись с LEDBlink пришло время прокачатся до уровня 1, благо экспириенса получил прилично, спасибо за это СООБЩЕСТВУ. Глаз положил решил написать модуль для программных таймеров на базе SysTick, но без особых проблем под эту задачу можно использовать любой другой аппаратный таймер.
И тут многие скажут, зачем изобретать велосипед? Почему не использовать уже обкатанные варианты?
Все эти варианты хороши, выбирай на вкус, но все таки я попробую изобрести свой велосипед в этой области, к тому же это:
  1. бесценный опыт
  2. попробовать реализовать другой подход к решению задачи
  3. удовлетворить свое самолюбие
  4. ну и т.д.

Итак, мы приступаем…

Читать дальше
  • +4
  • 09 декабря 2015, 13:19
  • Helix
  • 1

Изучение STM32. Уроки по программированию STM32F4 Discovery.

На просторах РУНЕТа можно много найти инфы по изучению STM32, оформленные в виде статей, уроков, видео уроков. Подавляющее большинство материала на эту тему написано на SPL или чистом CMSIS. Но компания ST довольно упорно продвигает в массы библиотеку HAL и его генератор STM32CubeMX. Данная библиотека уже многим пришлась по вкусу. Так как я программист гуру не от бога, то при переходе от 8-ми битных мк на STM32 использование данной библиотеки показалось мне довольно правильным решением.

Читать дальше
  • +1
  • 05 декабря 2015, 09:23
  • Helix

Подключение линейного энкодера к STM32

image
Однажды ко мне попал линейный энкодер ПЛФ-3 и мне захотелось подключить его к микроконтроллеру. Однако, как оказалось, дело это не самое простое. Какие именно проблемы возникли при этом, и как они были решены — читайте далее.


Читать дальше

Асинхронное USB аудио на STM32

Для того, чтобы вывести звук из компьютера в микроконтроллер, у современного распространенного компьютера есть четыре подходящих интерфейса: Ethernet, Bluetooth, USB и S/PDIF. В МК, три из них требует использования внешнего железа (S/P DIF вход напрямую стал поддерживаться начиная с STM32F446), а Ethernet, кроме того — еще и специального драйвера на стороне компьютера. Поэтому выбор пал на USB.


Читать дальше

RC5 symmetric-key block cipher STM32

Может кому то пригодится.
RC5.c, RC5.h
Описание здесь
RC5 wiki
Описание на Хабре
  • +3
  • 22 сентября 2015, 02:11
  • x893

О размерности данных в программах для микроконтроллеров

Для начала предисловие. Я не программист, и все знания приобрел в процессе решения технических задач. Поэтому для меня до сих пор банальные для других вещи становятся как открытие. В институте изучал Fortran 77, после появления персонального компьютера начал осваивать Си для AVR. Сейчас осваиваю STM32. Программы под Windows пробовал писать( пару примитивных по нужде, подгрядывая в интернете как это делается). В результате я понял, что мне больше подходит низкоуровневое программирование (когда понимаешь процессы, которые происходят). Для большего утоления информационного голода не хватает знаний как работают компиляторы. В сети практически нет информации об этом (или я не правильно поисковый запрос формировал). Теперь про суть.

Читать дальше

Заметка о полетном контроллере Flip32 Mini

Начал делать первые шаги в коптеростроительстве, после экспериментов с MultiWii и Arduino Pro Micro решил заказать мелкую легкую платку с STM32. По моему скромному опыту, из датчиков достаточно датчика угловых скоростей, акселерометра и барометра. Порывшись в интернетах нашел дешевую платку Flip32 Mini за $22.

Краденое в интернетах изображение Flip32 Mini


Читать дальше

Опыт использования USART3 в STM32F100C6

Как известно виновники многих открытий — случайности.
Так и я не обратил внимания, что у STM32F100C6 по документации всего два USART и развел третий. Запустил обмен на передачу, все замечательно работало. Однако когда начал налаживать прерывание на прием обнаружил, что в STM32F10x_StdPeriph_Driver для этого МК прерывание не настраивается. Что такое думаю, как так. Открыл даташит и смотрю, а их два.
Ну думаю раз на передачу работает дело за тем, что бы допилить STM32F10x_StdPeriph_Driver.
Выполнил следующие доработки (компилятор KEIL)
В файле stm32f10x.h в разделе #ifdef STM32F10X_LD_VL добавил строку
USART3_IRQn = 39, /*!< USART3 global Interrupt */
которую скопировал из раздела
#ifdef STM32F10X_MD

Далее в фале запуска startup_stm32f10x_ld_vl.s
добавил обработчик прерывания от USART3
Прием заработал.
Оба отредактированных файла прилагаю.

На передачу USART3 работал долго и уверено, а вот когда наладил прерывание через некоторое время, после активного обмена МК перестал работать. Прошивается, но не работает. Под отладчиком посмотреть, что там происходит, возможности нет из-за особенности схемы.

Обращаю внимание функция сия выходит не документированная и использовать ее можно скорее для экспериментов или для каких то разовых работ.

Первый обзор отладочной платы STM32F746GDISCOVERY топик-ссылка

В моих руках недавно оказалась новая отладка от ST с МК STM32F7, небольшой обзор внутренностей прилагается. Вкратце: МК с 216 МГц/462 DMIPS, 64 Мб SDRAM, 128 Мб Flash, ЖК-экран 4.3 дюйма с ёмкостным (!) тач-скрином, и конечно Ethernet (LAN8742), FS/HS USB, слот SD-карты и MIPI-камеры, плюс два MEMS-микрофона, чтобы делать стереозвук или чистить шум. Первые впечатления очень хорошие, хочу попробовать сделать микрофонную решётку, и много чего ещё. В примерах есть куча всего, в т.ч. и Ethernet.

Удобный модуль для STM32

У меня возникает вечная проблема, когда нужно вытравить плату под STM32 LQFP48. Лазерный принтер заставляет сильно помучиться, пока получается годный шаблон для засветки. И в любом случае, он с изъянами… + плата должна быть 2-х сторонней (иначе сложно развести питание).
+ проверить работу контроллера можно только на готовой плате. Еже ли что, то всю плату переделывать. А это опять 0.3 через 0.5. Опять геморой…

В итоге родился такой модуль:

Кому интересно, прошу под кат…


Читать дальше