Еще одна обертка над GPIO

Расшевелю блог такой многократно жеваной темой как настройка GPIO на примере STM32. Посмотрел разные варианты макросов и не впечатлился, написал свое. Не буду расходовать зря слова, когда проще показать код и результаты компиляции.


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

STM32F4Discovery+LabWindowsCVI. Урок 1. Часть 0. Введение

Для тех, кому лень изучать С++ и С#...

Многие начинающие или даже имеющие за плечами большой опыт программирования программисты микроконтроллеров сталкиваются с проблемой написания более менее рабочего оконного приложения для управления микроконтроллером с ПК и отображения телеметрии. В большинстве случаев для этого нужно изучать языки программирования высокого уровня, такие как С++ и C#. Процесс изучения этих языков может привести программиста, который всю жизнь программировал только на С в ступор, потому что они очень сильно отличаются от обычного С, а изучение этих языков займет у него очень много времени.
Именно для таких людей компания NationalInstruments выпустила программу LabWindowsCVI, в которой весь код пишется на простом С и человек, который программировал только на С очень легко в ней разберется…

В этом топике хочу представить вам цикл уроков по программированию LabWindowsCVI с использованием отладочной платы STM32F4Discovery…

В процессе работы мы напишем простое приложение :

С помощью этого приложения мы сможем:
    -Управлять состоянием светодиодов;
    -Управлять яркостью синего светодиода;
    -Получать значения угловых ускорений со встроенного акселерометра;
    -Изменять значения на выходе ЦАП и изменять его с помощью АЦП.

Видео, демонстрирующее работу приложения представлено ниже:


Спасибо за внимание!

STM32 HAL. Часть 1 - GPIO и внешние прерывания.

Приветствую коллеги и просто любопытствующие. Я несколько лет занимаюсь разработкой ПО для встраиваемых систем. В основном для STM32 с использованием Standart Peripheral Library. Недавно попытался пересесть на их HAL под названием CUBE. Мягко говоря, разочаровался этим непродуманным продуктом и окончательно решил, что надо поделиться своим собственным HAL-ом, который накатывается поверх Standart Peripheral Library. В этой и, очень надеюсь, последующих статьях я выложу коды, опишу их и примеры их использования. Кому это интересно — прошу под кат.

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

MSP430 макросы для работы с GPIO + бонус: режим Open Drain

Вдохновившись макросами для работы с линиями ввода-вывода для STM32 уважаемого ZiB , написал похожие для MSP430. Данный набор макросов упрощает работу с линиями ввода-вывода, позволяет писать более читаемый код, исключает некоторые ошибки (например — попытка изменения состояния порта, настроенного на вход) и в качестве бонуса — добавляет эмуляцию режима «открытый сток» (Open Drain).

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

Удобная настройка GPIO STM32F030. Мой велосипед.

Долгое время я настраивал порты различных микроконтроллеров STM32 при помощи Standart Peripheral Library.


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

Практический курс STM32. Урок 1 - GPIO. Порты ввода-вывода

В предыдущем уроке мы поговорили о необходимой нам документации и установили IDE. Сейчас самое время познакомится с GPIO.

В этом уроке мы:
  • Узнаем о возможностях GPIO серии STM32F4
  • Пройдемся по Справочному руководству (Reference Manual, далее просто СР) попутно его комментируя
  • Освоим 80% его функционала, не вдаваясь в работу с альтернативными функциями(об этом ниже). Поверьте, этого будет вполне достаточно для начала. А поскольку альтернативные функции касаются отдельных блоков STM(USB, таймеры, USART), о них мы поговорим уже по ходу освоения конкретных блоки в следующих(надеюсь) уроках
  • К концу урока, как это положено по традиции, помигаем миру светодиодами наших F4-Discovery. Напишем код и подробно разберем каждую его строку(кроме одной, относящейся к следующему уроку).


Всех, кому интересно приглашаю под кат.

Удобная настройка GPIO портов

Настройка GPIOX портов в STM32, как уж повелось, не самое интересное занятие.
Большое разнообразие настроек в определенный момент начинает взрывать мозг, особенно если пользоваться стандартными решениями.
Например, чтобы нам настроить GPIOA.11 на 10МГцовый — выход по типу OPEN_DRAIN c выключенным драйвером — нужно выполнить следующие операции:


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

GPIO-библиотека для AVR

Однажды пришлось мне решать до ужаса простую задачу по "мудренизации" одного серийного устройства. Ну и получилось так, что из-за избытка свободного времени начал страдать всякой фигней, как это обычно бывает. Захотелось соорудить велосипед придумать как удобно и красиво дергать ногами (контроллера).
Этот пост поведает об еще одном решении такой тривиальной задачи, как макросы для ногодрыга.
Гуру тут будет очень скучно. Возможно заинтересует кого из новичков. Под катом кратенькое описание и исходники "скачать бесплатно".


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

8L-Курс, Часть 2 - GPIO

← Часть 1 — Hello светодиод! Содержание Часть 3 — Прерывания →
В прошлой части мы запустили мигалку светодиодом. Теперь пришла пора разобраться с тем, как она работает и как устроен модуль GPIO в STM8.



Читать дальше
  • +4
  • 16 декабря 2012, 18:34
  • dcoder
  • 1

Altera dev board. Проблемы с GPIO

Думаю, что владельцы альтеровских плат разработчика либо сталкивались с такой проблемой, либо уже знают ее решение.
Итак, имеется отладочная плата DE2, на нее выведен 40 пиновый разъем GPIO (general purpose inout ).
Создаю проект, импортирую pin assignments из csv файла. Сам GPIO — Это 38 проводная шина.
Мой проект содержит приемник и передатчик uart. формируем байт для передатчика с помощью свитчей, что распаяны на плату, индицируем принятый байт светодиодами. Загвоздка приключилась вот с чем. Выход передатчика хотел подцепить на GPIO[26], вход приемника на GPIO[28], но квартус пишет ошибку: «port GPIO is declared more than once».
Собсно проблему решил переобозначением в Assignment Editon конкретно этих пинов на TxOut и RxIn.

А теперь вопрос: есть ли возможность часть бит разъема GPIO использовать как входы, а часть как выходы не меняя их имен в Pin Assignment? И если да, то как? Вроде у Petrovich'а есть DE nano?

кусочек toplevel файла:

module uart(CLOCK_50, SW, KEY, LEDG, LEDR, GPIO);
input CLOCK_50;
input [17:0] SW;
input [3:0] KEY;
output [17:0] LEDR;
output [8:0] LEDG;
input [26:26]GPIO;
output [28:28]GPIO;

...

endmodule