Скрыть объявление

Если у вас возникают проблемы с пополнением баланса по карте, то пробуйте через СБП . Он еще и выгоднее (без комиссии банка).


СБП - это система быстрых платежей - перевод по номеру телефона без комиссии

Скрыть объявление

Если у Вас проблемы с пополнением баланса, то попробуйте отключить VPN и воспользоваться этим Сайтом

Скрыть объявление

Осталось несколько часов до окончания акции!

Успейте поучаствовать!

Подробности ТУТ

Скрыть объявление

С Новым годом и новой акцией!

Праздничное настроение должно длиться дольше, правда? Поэтому мы решили добавить в январь немного магии и щедрости.

Подарите себе и близким новую порцию знаний и вдохновения. Подробности и условия — ТУТ

Запись

Программирование микроконтроллеров STM32 для начинающих (Дмитрий Забарило)

Тема в разделе "Курсы по программированию"

Цена:
36400 руб
Взнос:
720 руб
Организатор:
Magnetka

Список участников складчины:

1. Magnetka
open
2
Записаться
  1. Magnetka Организатор складчин

    Программирование микроконтроллеров STM32 для начинающих (Дмитрий Забарило)

    [​IMG]


    Современный мир электроники уже неразрывно связан с цифровыми устройствами, наиболее яркими представителями которых являются микроконтроллеры (МК). И если пару-несколько десятилетий назад можно было быть вполне успешным электронщиком, особо не разбираясь ни в микроконтроллерах, ни в микропроцессорах, то сейчас любой уважающий себя электронщик должен иметь достаточный уровень знаний в области программирования микроконтроллеров.

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

    Среди множества МК в последние годы наибольшее распространение и применение получили микроконтроллеры STM32, производства компании ST Microelectronics. Эти МК приобрели популярность как в среде любителей, так и в среде профессионалов. Если посмотреть вакансии электронщиков и разработчиков встраиваемых систем, то в более чем 90 % вакансий требуются специалисты со знанием и навыками программирования МК STM32.

    О курсе
    В качестве основной принята плата NucleoF446 на базе STM32F446RE. Однако для изучения преимущественного большинства занятий курса подойдет практический любой STM32. Все же желательно чтобы это была плата Nucleo или Discovery, поскольку эти платы кроме микроконтроллера содержат программатор, что очень удобно, особенно в процессе обучения. Если возникнут вопросы касательно выбора платы для обучения – пишите мне по контактам, приведенным ниже.

    Для кого предназначен курс STM32
    Курс полностью самодостаточный – это означает, что для его изучения не требуются какие-либо предварительные знания ни в программировании, ни в микроконтроллерах. Более того, в ходе изучения материалов курса не придется отклоняться на дополнительное изучение стороннего материала. Вся необходимая информация содержится в самом курсе, поэтому и объем его приличный.

    Хотя название курса включает фразу «для начинающих», однако материал довольно объемный и углубленный, а вот изложение его выполнено понятным языком для самых начинающих.

    Инструментарий курса
    Язык программирования: С (с нуля).
    Среда разработки – CubeIDE (официальная бесплатная среда).

    Библиотеки: HAL, CMSIS.

    Микроконтроллер: плата NucleoF446 (или другая, здесь не строго).

    Занятие 1
    1. Область применения микроконтроллеров.
    2. Структура МК.
    3. Инструментарий для программирования МК.
    4. Установка и настройка CubeIDE.
    5. Работа с документацией на МК. Первая программа.
    Занятие 2
    1. Порты ввода-вывода (GPIO). Настройки портов на выход.
    2. Электрические характеристики МК.
    3. Расчет токоограничивающих резисторов.
    4. Директива препроцессора #include, комментарии, функция int main (void).
    5. Знакомство с библиотекой HAL.
    Занятие 3
    1. Настройки выводов МК на вход.
    2. Подключение и считывание состояния контактов кнопок. Подтягивающие резисторы.
    3. Оператор цикла while(). Оператор ветвления if, if-else. Логические операции И, ИЛИ.
    Занятие 4
    1. Переменные и константы.
    2. Операции сравнения и отношения.
    3. Типы данных.
    4. Операция присваивания, инкрементирование и декрементирование.
    5. Оператор цикла for.
    Занятие 5
    1. Функции.
    2. Локальные и глобальные переменные.
    3. Унарные, бинарные и тернарные операции. Определение среднего и максимального значений.
    4. Переполнение типа данных.
    Занятие 6
    1. Устройство, принцип действия и подключение одноразрядного семисегментного индиктора.
    2. Директива препроцессора #define.
    3. Оператор switch.
    4. Дребезг контактов кнопки. Борьба с дребезгом.
    5. Булевский тип данных.
    Занятие 7
    1. Прерывания. Внешние прерывания. Приоритеты прерываний.
    2. Статический класс хранения static. Квалификатор extern.
    3. Борьба с дребезгом контактов в обработчике прерываний.
    4. Функция HAL_GetTick().
    5. Функция обратного вызова по прерываниям (CallBack).
    Занятие 8
    1. Таймеры. Принцип работы.
    2. Базовые таймеры.
    Занятие 9
    1. Система тактирования МК STM32.
    2. Выводы MCO. Тактирование одно МК от другого.
    3. Одноимпульсный режим таймера.
    Занятие 10
    1. Динамическая индикация.
    2. Прерывания от таймеров.
    3. Квалификатор volatile.
    Занятие 11
    1. Отображение десятичных и отрицательных чисел на динамической индикации.
    2. Типы данных с плавающей запятой.
    3. Преобразование типов данных.
    4. lrint() – функция математического округления числа или переменной с плавающей запятой в целочисленный тип данных.
    Занятие 12
    1. Разработка секундомера и таймера.
    2. Быстрый счет кнопкой.
    3. Приоритеты прерываний.
    Занятие 13
    1. Таймеры общего назначения.
    2. Тактирование и управление таймерами по внешним выводам МК.
    Занятие 14
    1. Управление работой одних таймеров посредством других таймеров.
    2. Генерирование программных событий программным способом.
    Занятие 15
    1. Режим сравнения таймеров.
    2. Формирование сдвига фаз на разных каналах таймера.
    3. Формирование сигналов разной частоты на отдельных каналах таймера.
    Занятие 16
    1. Режим захвата таймера.
    2. Знакомство с отладчик МК.
    3. Измерение частоты внешнего сигнала. Разработка частотомера.
    Занятие 17
    1. Широтно-импульсная модуляция (ШИМ). Принцип действия. Основные параметры и настройки.
    2. Модулирование синусоидальной ШИМ посредством таймеров.
    Занятие 18
    1. Инкрементальный энкодер. Назначение, принцип действия, подключение.
    2. Аппаратная борьба с дребезгом контактов. RC-цепь. Триггер Шмитта.
    3. Считывание сигналов с энкодера посредством применения внешних прерывания.
    4. Считывание сигналов с энкодера посредством штатного режим энкодера МК.
    5. Вычисление направления, частоты оборотов и скорости вращения вала энкодера.
    Занятие 19
    1. Интерфейс UART. Принцип обмена данными.
    2. Передача данных по UART в режиме опроса.
    3. Массивы. Массивы символов и строк. Вычисление числа элементов массива. Функции sizeof(), strlen().
    Занятие 20
    1. Передача и прием данных по UART в режиме опроса.
    2. Функция sprintf(). Спецификаторы типов данных.
    3. Передача целочисленных данных и данных с плавающей запятой по UART.
    4. Применение логического анализатора.
    Занятие 21
    1. Прерывания по UART.
    2. Работа UART в режиме IDLE.
    3. Общие понятия о контроллере DMA.
    4. Обмен данными по UART в режиме DMA.
    Занятие 22
    1. Указатели.
    2. Связь указателей и массивов.
    3. Вызов функции по значению и по ссылке.
    Занятие 23
    1. Аналого-цифровой преобразователь (АЦП). Принцип действия, основные параметры, режимы работы.
    2. Режим однократного и непрерывного преобразования одного канала.
    3. Разработка вольтметра. Делитель напряжения.
    Занятие 24
    1. Измерение температуры внутреннего датчика температуры МК посредством АЦП.
    2. Проверка работоспособности аналоговых датчиков.
    3. Измерение температуры от внешних аналоговых датчиков температуры (датчики TMP35, TMP36).
    4. Изучение работы АЦП в режиме прерываний и DMA в режиме однократного и непрерывного преобразования.
    5. Усреднение данных измерения напряжений в режиме DMA.
    6. Получение заданного объема данных (числа измерений) в режиме DMA.
    Занятие 25
    1. Управление ШИМ посредством АЦП. Плавное регулирование частоты оборотов двигателя постоянного тока.
    2. Применение одного канала АЦП для опроса состояния контактов нескольких кнопок.
    3. Режим сканирования каналов АЦП.
    Занятие 26
    1. Запуск преобразования регулярных каналов АЦП от внешней линии и от таймеров.
    2. Настройки режимов работы инжектированных каналов.
    3. Запуска преобразования инжектированных каналов АЦП от таймеров и от внешней линии.
    Занятие 27
    1. Цифро-аналоговый преобразователь (ЦАП). Принцип работы и основные характеристики.
    2. Настройки и формирование постоянного напряжения посредством ЦАП.
    3. Формирование напряжения синусоидальной формы с помощью ЦАП. Основные характеристики функции синуса.
    4. Формирование напряжения треугольной формы и шума аппаратными средствами микроконтроллера посредством ЦАП.
    Занятие 28
    1. Организация памяти микроконтроллеров STM32.
    2. Работа с памятью МК посредством доступа только по адресам.
    3. Управление портами МК посредством обращения напрямую к ячейкам памяти по адресам.
    Занятие 29
    1. Структуры языка Си.
    2. Ключевое слово typedef.
    3. Знакомство с библиотекой CMSIS.
    Занятие 30
    1. Побитовые операции.
    2. Установка, сброс, переключение и проверка отдельных битов регистров МК.
    3. Отладка кода посредством обращения к регистрам МК.
    4. Изучение библиотеки CMSIS.
    5. Сравнение частоты переключения пинов МК при задействование библиотек CMSIS и HAL, и управлении битами регистров МК по адресам.
    Занятие 31
    1. Сдвиговый регистр 74HC595. Принцип работы, управление, расширение портов МК.
    2. Статическая индикация на семисегментных индикаторах с применением сдвиговых регистров.
    3. Динамическая индикация на базе сдвиговых регистров 74HC595.
    Занятие 32
    1. ЖК дисплей. Подключение. Инициализация.
    2. Отображение символов и строк на ЖК дисплее.
    3. Выбор позиции на дисплее для отображения информации.
    Занятие 33
    1. ЖК дисплей. Отображение на ЖК дисплее значений целочисленных переменных и переменных с плавающей запятой.
    2. Генерирование собсвенных любых символов на дисплее. CGRAM и DDRAM память дисплеев.
    3. Отображение текущих значений температуры и напряжения на ЖК дисплее.
    Занятие 34
    1. Матричная клавиатура. Принцип работы. Подключение. Отображение символов клавиатуры на LCD дисплее.
    2. Подключение нагрузки посредством ввода правильного пароля, вводимого из клавиатуры.
    3. Двумерные массивы.
    Занятие 35
    1. Расширенное пояснение директивы препроцессора #include.
    2. Подключаемые файлы с расширением .h и .c.
    3. Принцип создание собственной библиотеки.
    Занятие 36
    1. Интерфейс I2C. Принцип обмена данными. Основные параметры и настройки.
    2. Расширитель портов микроконтроллера на базе микросхемы PCF8574. Настройки для работы микросхемы PCF8574 на вход и выход.
    3. Подколючение LCD дисплея 2004 по интерфейсу I2C посредством PCF8574.
    Занятие 37
    1. Интерфейс I2C. Датчик температуры LM75B: принцип работы, подключение, измерение температуры, настройка гистерезиса температуры.
    2. Написание библиотеки для датчика LM75B.
    Занятие 38
    1. Интерфейс I2C. Подключение внешней энергонезависимой памяти EEPROM. Устройство EEPROM. Принцип записи и чтения данных из EEPROM памяти.
    2. Применение специальных функций HAL для работы с памятью.
    3. Функции atoi, atof, atol, atoll.
    4. Подключение EEPROM памяти разных производителей.
    Занятие 39
    1. Интерфейс I2C. Подключение датчика температуры и влажности SHT3x.
    2. Отображение значений температуры и влажности на LCD дисплее, подключенного к той же линии I2C.
    Занятие 40
    1. Интерфейс I2C. Устройство, принцип работы и подключение OLED дисплея.
    2. Отображение данных на дисплее без применения сторонних библиотек.
    3. Отображение данных, значений переменных, рисунков и анимаций на OLED дисплее с помощью сторонней библиотеки.
    и т.д.


    Скрытый текст. Доступен только зарегистрированным пользователям.Нажмите, чтобы раскрыть...
     
  2. Похожие складчины
    Загрузка...
Наверх