Книги по stm32 – STM32F4xx_Поваренная книга анархиста / stm32 / Сообщество разработчиков электроники

Содержание

Изучайте STM8 и STM32 по методичкам на русском языке!

На сайте КОМПЭЛ размещены новые методические материалы на русском языке по программированию микроконтроллеров STM8 и STM32. Учебные материалы представляют собой инструкции к лабораторным работам на базе недорогих отладочных плат STM8SVLDISCOVERY, STM32F3DISCOVERY и STM32F4DISCOVERY. Рассчитанные на начинающих разработчиков, лабораторные работы пошагово учат работать с разнообразной периферией микроконтроллеров — портами ввода-вывода, таймерами, ШИМ, АЦП, компаратором, интерфейсами USART, I²C и SPI.

Лабораторные практикумы будут полезны тем инженерам, кто только осваивает новую архитектуру микроконтроллеров STMicroelectronics, а также студентам компьютерных специальностей, изучающим программирование встроенных систем.

Содержание методических материалов:

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM8 на базе отладочного модуля STM8SVLDISCOVERY
  • Лабораторная работа №1. Работа с портами ввода/вывода
  • Лабораторная работа №2. Использование внешних прерываний
  • Лабораторная работа №3. Использование таймеров. Организация задержек
  • Лабораторная работа №4. Использование таймеров Режим ШИМ
  • Лабораторная работа №5. Работа с UART
  • Лабораторная работа №6. Работа с SPI
  • Лабораторная работа №7. Работа с аналогово–цифровым преобразователем

Скачать

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM32 на базе отладочного модуля STM32F3DISCOVERY
  • Лабораторная работа №1. Работа с портами ввода/вывода
  • Лабораторная работа №2. Работа с внешними прерываниями
  • Лабораторная работа №3. Работа с АЦП. Устройства индикации
  • Лабораторная работа №4. Организация последовательной передачи информации. Интерфейс UART
  • Лабораторная работа №5. Использование аналогового компаратора
  • Лабораторная работа №6. Операционный усилитель

Скачать

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM32 на базе отладочных модулей STM32F3DISCOVERY и STM32F4DISCOVERY. Лабораторная работа №1. Изучение интерфейса SPI в STM32F3 Discovery
  • Лабораторная работа №2. Изучение интерфейса I2C. Работа с EEPROM-памятью
  • Лабораторная работа №3. Подключение матричной клавиатуры
  • Лабораторная работа №4. Использование датчиков. Работа с акселерометром

Скачать

Материалы на постоянной основе размещены по следующему адресу: Библиотека → Справочники → Литература производителя ST Microelectronics.

•••

Наши информационные каналы
О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство …читать далее

www.compel.ru

STM32F4xx_Поваренная книга анархиста / stm32 / Сообщество разработчиков электроники


/*————————————————————————————————-
* Name: Поваренная книга анархиста программиста
* микроконтроллерных систем на базе микропроцессора ARM
* Cortex M4F (среда разработки Keil uVision4 v4.73.0.0)
*—————————————————————————————————
* Copyright © All rights reserved. Maltsev Alexey. 2014
* vk.com/id233978561
* [email protected]
* ICQ: 457-568-689
*————————————————————————————————*/

Буэнос диас!

Итак, что у нас в меню:

Keil uVision4 (последняя версия на момент написания статьи v4.73.0.0)
rutracker.org/forum/viewtopic.php?t=2305709

STM32 ST-LINK utility
www.st.com/web/catalog/tools/FM146/CL1984/SC720/SS1454/PF219866

Дрова на плату STM32F4DISCOVERY под Windows
www.st.com/web/en/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168

Тестовая плата STM32F4DISCOVERY

Библиотека STM32F4xx_DSP_StdPeriph_Lib_V1.3.0

STM32F4DISCOVERY

STM32F4DISCOVERY — плата для быстрого и удобного изучения микроконтроллеров серии STM32F4, ориентированных на мультимедийные приложения.

На плате установлен 32-битный ARM-микроконтроллер STM32F407VGT6 семейства Cortex-M4F со следующими характеристиками:
• Корпус LQFP100 (100 ножек)
• Напряжение питания: 1.8 — 3.6 В
• Частота: до 168 МГц
• Память программ (Flash): 1 МБайт
• ОЗУ (RAM): 196 Кбайт
• 4 Кбайт backup SRAM (аналог EEPROM)
• Поддержка инструкций DSP и чисел с плавающей точкой
• 16-битные таймеры: 2 базовых таймера, 8 таймеров общего назначения, 2 продвинутых таймера, 2 watchdog
• 2 32-битных таймера общего назначения
• USB 2.0 full-speed device/host/OTG со своим PHY на борту
• USB 2.0 high-speed/full-speed device/host/OTG с отдельным DMA, со своим full-speed PHY на борту, есть поддержка ULPI
• 10/100 Ethernet MAC с отдельным DMA, поддержка PHY-микросхем с интерфесами IEEE 1588v2, MII/RMII
• 3x SPI (37.5 МБит/с), 2 из них с мультиплексированными полнодуплексными I2S для качественной передачи звука
• 3x I2C с поддержкой SMBus/PMBus
• 4x USART, 2x UART: 10.5 МБит/с, интерфейс ISO 7816, LIN, IrDA, modem control
• 2x CAN (2.0B Active)
• SDIO (для SD-карт)
• DCMI — [от 8 до 14]-битный параллельный интерфейс камеры (до 54 МБайт/с)
• Аналоговый генератор случайных чисел
• Встроенный модуль расчёта CRC
• 82x GPIO (выводы I/O)
• RTC (Real-Time Clock)
• 3 12-битных АЦП, 2.4 миллиона выборок в секунду, 16 каналов, 7.2 миллиона выборок в секунду в режиме тройного чередования
• 2 12-битных ЦАП
• Контроллер DMA с 16 каналами и поддержкой FIFO и пакетной передачи
• Параллельный интерфейс LCD, режимы 8080/6800
• FSMC — контроллер статической памяти с поддержкой Compact Flash, SRAM, PSRAM, NOR и NAND
• Возможность отладки по JTAG или SWD



Что ещё установлено на плате:

• Отладчик ST-Link для отладки и прошивки МК, выведен разъём SWD для программирования других плат и контролллеров

• Есть выводы для внешнего питания 5 и 3 В

• Есть кнопка сброса

• Четыре светодиода и одна кнопка, доступные для программирования

• Все 100 выводов МК выведены по бокам платы штырьками по два ряда

• LIS302DL — MEMS-датчик движения, 3х-осевой цифровой акселерометр

• MP45DT02 — цифровой MEMS-микрофон

• CS43L22 — аудио-ЦАП со встроенным драйвером динамиков класса D

• Для USB OTG выведен разъём micro-USB. Если плату с заводской прошивкой подключить через этот разъём к компьютеру, то она будет вести себя как джойстик класса USB HID.

STM32 ST-LINK Utility

Данную программу удобно использовать для прошивки микроконтроллера при помощи hex файла.
Подсоединяем плату к ПК при помощи кабеля USB – miniUSB. Нажимаем на панели инструментов Connect.




Выбираем hex файл для прошивки (можно просто перетащить файл в основное окно программы).




Прошиваем плату



Результаты прошивки отображаются в командной строке.

Keil uVision4

Монстр программирования. Умеет делать абсолютно все, даже то, что не умеет 😉

Создадим новую папку, куда будем помещать все наши проекты. Например, STM32. В этой папке создадим папку для первого проекта. Назовем ее 00_Test. Так же в папке STM32 создадим папку _Lib – сюда мы поместим фалы библиотек CMSIS и Standard Peripheral Library, и каждый новый проект будет ссылаться на эту папку в поиске библиотек.

В папке 00_Test создадим папки:

Project – здесь будут служебные файлы, которые будет создавать программа Keil uVision4 для данного, конкретного проекта.

user – файлы пользовательского кода (программа, которая будет зашиваться в микроконтроллер). В этой папке создаем текстовый файл main.c. Напишем в нем коротенький код

#include «stm32f4xx.h»

int main(void)

{

while(1) {}

}

Этот код нам понадобится потом.

P.S.: имена папок, а так же структура проекта – личное дело программиста, но надо стремиться к упорядоченному структурированию, чтобы проект был “читабельным” для других программистов. Папку Project можно и не создавать, но тогда все служебные файлы будут “замусоривать” корневой каталог папки 00_Test.

Вот, что должно получится:


Теперь разберемся с библиотеками.

Будем использовать 2 библиотеки:

1. CMSIS (выпускает фирма ARM)

2. Standard Peripheral Library (выпускает фирма STMicroelectronics)

Обе библиотеки бесплатны и доступны для скачивания (эти две библиотеки объединены в одном архиве) на www.st.com/

Причем есть два варианта библиотеки.

1. Библиотека для микроконтроллера STM32F407VGT6 вообще STM32F4xx_DSP_StdPeriph_Lib_V1.3.0 (stm32f4_dsp_stdperiph_lib.zip)

www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN11/PF252140?s_searchtype=partnumber#




2. Библиотека конкретно для тестовой платы STM32F4DISCOVERY STM32F4 -Discovery_FW_V1.1.0 (stsw-stm32068.zip)

www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743/PF257904?s_searchtype=keyword

Мы будем пользоваться библиотекой STM32F4xx_DSP_StdPeriph_Lib_V1.3.0

Заходим в папку

STM32F4xx_DSP_StdPeriph_Lib_V1.3.0



Libraries



И копируем две папки CMSIS и STM32F4xx_StdPeriph_Driver в нашу папку _Lib

Удаляем в папке CMSIS (которую мы скопировали в _Lib) все, кроме папки Device.

Заходим в папку

STM32F4xx_DSP_StdPeriph_Lib_V1.3.0



Project



STM32F4xx_StdPeriph_Examples



ADC



ADC_DMA



Копируем файл stm32f4xx_conf.h в нашу папку STM32F4xx_StdPeriph_Driver

Далее проделаем следующие манипуляции:

_Lib



CMSIS



Device



ST



STM32F4xx



Include



В свойствах файлов stm32f4xx.h и system_stm32f4xx.h снимаем галочку “Только чтение”

Запускаем программу Keil uVision4 и создаем новый проект.



Путь для проекта указываем:

STM32



00_Test



Project



Имя проекта Test



Далее программа предлагает автоматически создать файл конфигурации данного микроконтроллера – startup_stm32f40xx.s. Соглашаемся.


В итоге получили:



Переименуем папку Source Group 1 (в которую программа поместила файл конфигурации микроконтроллера startup_stm32f40xx.s) в startup. Для этого щелкаем один раз левой кнопкой мыши по имени папки и нажимаем F2 – имя папки теперь доступно для переименования. Аналогичным образом переименовываем имя проекта из Target 1 в 00_Test.

Добавляем в проект папку user:

Добавим ранее созданный файл main.c. в папку user. Для этого дважды щелкаем левой кнопкой мыши по заголовку папки (или при помощи правой кнопки вызываем контекстное меню).




Итак, мы создали на жестком диске папку проекта 00_Test. В этой папке создали еще две папки: Project и user.

Project – тут программа будет размещать свои служебные файлы и главный файл проекта Test.uvproj

user – тут мы будем размещать файлы кода, который будем загружать в микроконтроллер.

В среде программирования Keil uVision4 создали новый проект 00_Test. В структуре проекта сейчас две папки: startup и user

startup – в этой папке находится файл конфигурации микроконтроллера

user – в этой папке содержатся файлы из папки user, которая была создана ранее на жестком диске.

На жестком диске больше никаких папок создавать не будем. Но в среде программирования в структуре проекта создадим еще две папки: CMSIS и StdPeriphLib. В этих папках будут содержаться наши библиотеки.

Подключим к этим папкам необходимые файлы из папки _Lib.

Для CMSIS:

_Lib



CMSIS



Device



ST



STM32F4xx



Source



Templates



system_stm32f4xx.c

Для StdPeriphLib:

_Lib



STM32F4xx_StdPeriph_Driver



src



все файлы (кроме файла stm32f4xx_fmc.c)

В опциях проекта необходимо указать пути к этим папкам библиотек






В папке user откроем файл main.c, щелкаем правой кнопкой мыши по #include «stm32f4xx.h», и выбираем Open…



Далее снимаем комментарии в тех местах кода, как показано ниже





Далее необходимо настроить проект:





Запускаем компиляцию проекта – F7.

Если все правильно, то ошибок не должно быть.

Напишем несложный код для мигания светодиодом

Обращаю внимание, что код должен заканчиваться пустой строкой (строка №45).

Запустим компиляцию (F7). Теперь можно “зашить” проект в микроконтроллер:


Если все было сделано правильно, то на тестовой плате должен мигать зеленый светодиод. Чтобы выйти из окна отладчика, нажимаем Ctrl+F5.

УРА!!!

Продолжение следует…

tqfp.org

Книга «Mastering STM32».: embedded_books

Автор: Carmine Noviello.
Название: Mastering STM32.
Издательство: Lean Publishing, 2018.

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

Книга выгодно выделяется на общем фоне тем, что не является компиляцией даташитов от производителя, как традиционно принято писать о микроконтроллерах. Вместо этого автор описывает те аспекты, которые довольно скудно и бессистемно освещены в литературе: настройка среды разработки (в данном случае это Eclipse+GCC), конфигурирование ядра и периферии МК при помощи STM32CubeMX, использование библиотеки STCube HAL. Материал изобилует практическими примерами, например, для каждого устройства приводятся фрагменты работы с использованием поллинга, прерываний и DMA (если поддерживается устройством).

Большой раздел посвящен описанию FreeRTOS и ее расширений, добавленных разработчиками ST. Есть также небольшой обзор других RTOS на случай, если выбор разработчика склонится не в пользу FreeRTOS. Описаны дополнительные модули для работы с носителями формата FAT (на базе популярной библиотеки FatFs) и для разработки в области IoT (с примером на W5500).

Делающим самые первые шаги может пригодиться раздел, посвященный конструированию собственной платы. Материал там начального уровня, но от досадных примитивных ошибок может оградить.

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

Из недостатков книги самый, на мой взгляд, существенный — это полное отсутствие материалов по Atollic TrueSTUDIO, которая, как мы знаем, в ближайшем будущем должна стать основным официальным инструментом разработки от ST. Вероятно, это связано с тем, что первая версия книги увидела свет больше двух лет назад, когда такой информации еще не было, а потом у автора просто не хватило сил переписать начало книги заново. Возможно, вскоре мы дождемся и такой книги.

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

Очень рекомендую начинающим разработчикам, остальным — факультативно.

embedded-books.livejournal.com

Андронников И. STM32F4 это же просто и на русском языке [PDF]


Indiana University, 2016 — 244p.
This book is intended as a hands-on manual for learning how to design systems using the STM32 F1 family of micro-controllers. It was written
to support a junior-level computer science course at Indiana University. The focus of this book is on developing code to utilize the various peripherals available in STM32 F1 micro-controllers and in…

  • 12,69 МБ


  • добавлен

  • изменен




PE Press, 2015. — 137 p.
This book helps you how to get started with STM32 Nucleo board development. Several illustration samples are provided to accelerate your learning using Eclipse C/C++, GNU ARM, OpenOCD, and mbed development. The following is highlight topics in this book:
Preparing Development Environment
Setup Development Environment
Digital Input/Output
Serial…

  • 9,67 МБ


  • добавлен

  • изменен




Leanpub, 2016. — 782 p.
This is a book about the STM32 family of 32-bit Flash microcontrollers from ST Microelectronics based on the ARM Cortex-M architecture. The book will guide you in a clear and practical way to this hardware platform and the official ST CubeHAL, showing its functionalities with a lot of examples and tutorials. The book assumes that you are totally new to…

  • 65,88 МБ


  • добавлен

  • изменен




Москва; Николаев: МФТИ-ЧГУ, 2014. — 33 с.
Лабораторный практикум содержит материалы для начала работы с 32-битными микроконтроллерами фирмы ST Microelectronics. Приведено шесть лабораторных работ для работы с основной периферией. Лабораторный практикум будет полезен студентам компьютерных специальностей, изучающим микроконтроллеры, а также аспирантам, преподавателям, которым…

  • 1,02 МБ


  • добавлен

  • изменен




Интернет. Год: 2017 Кто-то из радиолюбителей, освоив микроконтроллеры PIC или AVR, собрался реализовать проект, который «не помещается» в эти микросхемы. Их внимание привлекают более мощные микроконтроллеры. Одним из таких микроконтроллеров может стать STM32, недорогой, но достаточно мощный представитель этих устройств. Есть и другие радиолюбители, которые всегда стремятся…

  • 2,54 МБ


  • добавлен

  • изменен




Без выходных данных. — 117 с.
За прошедшие шесть-семь лет основные усилия разработчиков микроконтроллеров
были потрачены на интегрирование ЦПУ ARM7 и ARM9 в микроконтроллеры общего
назначения. И вот, в настоящее время различными производителями выпускается
порядка 240 ARM-микроконтроллеров. К числу таких производителей относится и
компания ST Microelectronics, семейство…

  • 3,68 МБ


  • добавлен

  • изменен



www.twirpx.com

STM32F4: Немного о стандартных библиотеках для новичков

Когда только начинаешь программировать микроконтроллеры или давно не занимался программированием, то разбираться в чужом коде довольно не легко. Вопросы «Что это такое?» и «Откуда это взялось?» возникают чуть ли не на каждом сочетании букв и цифр. И чем быстрее приходит понимание логики «что? зачем? и откуда?», тем легче проходит изучение чужого кода, в том числе и примеров. Правда иногда для этого приходиться не один день «попрыгать по коду» и «полистать мануалов».

У всех микроконтроллеров STM32F4xx довольно много периферии. За каждым периферийным устройством микроконтроллеров закреплена определённая, конкретная и неперемещаемая  область памяти. Каждая область памяти состоит из регистров памяти, причём эти регистры могут быть 8-разрядными, 16-разрядными, 32-разрядными или ещё как, зависит от микроконтроллера. В микроконтроллере STM32F4 эти регистры 32-разрядные и каждый регистр имеет своё назначение и свой конкретный адрес. Ничто не мешает в своих программах обращаться к ним напрямую, указывая адрес. По какому адресу размещен тот или иной регистр и к какому периферийному устройству он относиться указывается в карте памяти. Для STM32F4 такая карта памяти есть в документе DM00031020.pdf, который можно найти на сайте st.com. Документ называется

RM0090
Reference manual
STM32F405xx/07xx, STM32F415xx/17xx, STM32F42xxx and STM32F43xxx advanced ARM-based 32-bit MCUs

В разделе 2.3 Memory map на странице 64 начинается таблица с адресами областей регистров и их принадлежностью к периферийному устройству. В той же таблице есть ссылка на раздел с более подробным распределением памяти для каждой периферии.

Слева в таблице указан диапазон адресов, в середине название периферии и в последнем столбце — где находиться более подробное описание распределения памяти.

Так для портов ввода-вывода общего назначения GPIO в таблице распределения памяти можно найти что для них  выделены адреса начиная с 0х4002 0000.  Порт ввода-вывода общего назначения GPIOA занимает диапазон адресов от 0х4002 000 до 0х4002 03FF. Порт GPIOB занимает диапазон адресов 0х4002 400 — 0х4002 07FF. И так далее.

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

Здесь также находиться таблица, но уже с картой памяти для диапазона адресов GPIO. Согласно этой карте памяти первые 4 байта принадлежат регистру MODER, следующие 4 байта принадлежат регистру OTYPER и так далее. Адреса регистров считаются от начала диапазона, принадлежащему конкретному порту GPIO. То есть каждый регистр GPIO имеет конкретный адрес, который можно использовать при разработке программ для микроконтроллера.

Но использование адресов регистров для человека неудобно и чревато большим количеством ошибок. Поэтому производители микроконтроллеров создают стандартные библиотеки, которые облегчают работу с микроконтроллерами. В этих библиотеках физическим адресам ставиться в соответствие их буквенное обозначение. Для STM32F4xx эти соответствия заданы в файле stm32f4xx.h. Файл stm32f4xx.h принадлежит библиотеке CMSIS и лежит в папке Libraries\CMSIS\ST\STM32F4xx\Include\.

Посмотрим как определяется в библиотеках порт GPIOA. Аналогично определяется и всё остальное. Достаточно понять принцип. Файл stm32f4xx.h довольно большой и поэтому лучше использовать поиск или возможности, которые предоставляет ваш toolchain.
 

Для порта GPIOA находим строку в которой упоминается GPIOA_BASE

GPIOA_BASE определяется через AHB1PERIPH_BASE

AHB1PERIPH_BASE в свою очередь определяется через PERIPH_BASE

А в свою очередь PERIPH_BASE определяется как 0х4000 0000. Если посмотреть карту рапределения памяти периферийных устройств (в разделе 2.3 Memory map на странице 64), то увидим этот адрес в самом низу таблицы. С этого адреса начинаются регистры всей периферии микроконтроллера STM32F4. То есть PERIPH_BASE — это начальный адрес всей периферии микроконтроллеров STM32F4xx вообще, и микроконтроллера STM32F407VG в частности..

AHB1PERIPH_BASE определяется как сумма (PERIPH_BASE + 0x00020000). (см.картинки обратно). Это будет адрес 0х4002 0000. В карте памяти с этого адреса начинаются порты ввода-вывода общего назначения GPIO.

GPIOA_BASE  определяется как (AHB1PERIPH_BASE + 0x0000), то есть это начальный адрес группы регистров порта GPIOA.

Ну а сам порт GPIOA  определяется как структура из регистров, размещение которых в памяти начинается с адреса GPIOA_BASE (см строку #define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE).

Структура каждого порта GPIO определяется как тип GPIO_TypeDef.

Таким образом, стандартные библиотеки, в данном случае  файл stm32f4xx.h, просто очеловечивают машинную адресацию. Если вы увидите запись GPIOA->ODR = 1234, то это означает, что по адресу 0х40020014 будет записано число 1234.  GPIOA имеет начальный адрес 0х40020000 и регистр ODR имеет адрес 0х14 от начала диапазона, поэтому GPIOA->ODR имеет адрес 0х40020014.

Или например, вам не нравиться запись GPIOA->ODR, то можно определить #define GPIOA_ODR    ((uint32_t *) 0x40020014) и получить тот же самый результат, записав GPIOA_ODR = 1234;. Только вот насколько это целесообразно? Если действительно хочется ввести свои обозначения, то лучше просто переназначить стандартные. Как это делается, можно посмотреть в файле stm32f4_discovery.h Например, вот так там определяется один из светодиодов:

#define LED4_PIN                    GPIO_Pin_12
#define LED4_GPIO_PORT    GPIOD
#define LED4_GPIO_CLK       RCC_AHB1Periph_GPIOD  

Более детальное описание периферии портов находиться в stm32f4xx_gpio.h

 

firsthand.ru

Stm32 книга. Практический курс STM32. Урок 0



Изучайте STM8 и STM32 по методичкам на русском языке!

На сайте КОМПЭЛ размещены новые методические материалы на русском языке по программированию микроконтроллеров STM8 и STM32. Учебные материалы представляют собой инструкции к лабораторным работам на базе недорогих отладочных плат STM8SVLDISCOVERY, STM32F3DISCOVERY и STM32F4DISCOVERY. Рассчитанные на начинающих разработчиков, лабораторные работы пошагово учат работать с разнообразной периферией микроконтроллеров — портами ввода-вывода, таймерами, ШИМ, АЦП, компаратором, интерфейсами USART, I²C и SPI.

Лабораторные практикумы будут полезны тем инженерам, кто только осваивает новую архитектуру микроконтроллеров STMicroelectronics, а также студентам компьютерных специальностей, изучающим программирование встроенных систем.

Содержание методических материалов:

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM8 на базе отладочного модуля STM8SVLDISCOVERY
  • Лабораторная работа №1. Работа с портами ввода/вывода
  • Лабораторная работа №2. Использование внешних прерываний
  • Лабораторная работа №3. Использование таймеров. Организация задержек
  • Лабораторная работа №4. Использование таймеров Режим ШИМ
  • Лабораторная работа №5. Работа с UART
  • Лабораторная работа №6. Работа с SPI
  • Лабораторная работа №7. Работа с аналогово–цифровым преобразователем

Скачать

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM32 на базе отладочного модуля STM32F3DISCOVERY
  • Лабораторная работа №1. Работа с портами ввода/вывода
  • Лабораторная работа №2. Работа с внешними прерываниями
  • Лабораторная работа №3. Работа с АЦП. Устройства индикации
  • Лабораторная работа №4. Организация последовательной передачи информации. Интерфейс UART
  • Лабораторная работа №5. Использование аналогового компаратора
  • Лабораторная работа №6. Операционный усилитель

Скачать

ЛАБОРАТОРНЫЙ ПРАКТИКУМ по изучению микроконтроллеров STM32 на базе отладочных модулей STM32F3DISCOVERY и STM32F4DISCOVERY. Лабораторная работа №1. Изучение интерфейса SPI в STM32F3 Discovery
  • Лабораторная работа №2. Изучение интерфейса I2C. Работа с EEPROM-памятью
  • Лабораторная работа №3. Подключение матричной клавиатуры
  • Лабораторная работа №4. Использование датчиков. Работа с акселерометром

Скачать

Материалы на постоянной основе размещены по следующему адресу: Библиотека → Справочники → Литература производителя ST Microelectronics.

•••

Наши информационные каналы
О компании ST Microelectronics


Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство …читать далее

www.compel.ru

STM32F4xx_Поваренная книга анархиста / stm32 / Сообщество разработчиков электроники

/*————————————————————————————————- * Name: Поваренная книга анархиста программиста * микроконтроллерных систем на базе микропроцессора ARM * Cortex M4F (среда разработки Keil uVision4 v4.73.0.0) *————————————————————————————————— * Copyright © All rights reserved. Maltsev Alexey. 2014 * vk.com/id233978561 * [email protected] * ICQ: 457-568-689 *————————————————————————————————*/

Буэнос диас! Итак, что у нас в меню:

• Keil uVision4 (последняя версия на момент написания статьи v4.73.0.0)rutracker.org/forum/viewtopic.php?t=2305709

• STM32 ST-LINK utilitywww.st.com/web/catalog/tools/FM146/CL1984/SC720/SS1454/PF219866

• Дрова на плату STM32F4DISCOVERY под Windowswww.st.com/web/en/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168

• Тестовая плата STM32F4DISCOVERY • Библиотека STM32F4xx_DSP_StdPeriph_Lib_V1.3.0

STM32F4DISCOVERYSTM32F4DISCOVERY — плата для быстрого и удобного изучения микроконтроллеров серии STM32F4, ориентированных на мультимедийные приложения. На плате установлен 32-битный ARM-микроконтроллер STM32F407VGT6 семейства Cortex-M4F со следующими характеристиками: • Корпус LQFP100 (100 ножек) • Напряжение питания: 1.8 — 3.6 В • Частота: до 168 МГц • Память программ (Flash): 1 МБайт • ОЗУ (RAM): 196 Кбайт • 4 Кбайт backup SRAM (аналог EEPROM) • Поддержка инструкций DSP и чисел с плавающей точкой • 16-битные таймеры: 2 базовых таймера, 8 таймеров общего назначения, 2 продвинутых таймера, 2 watchdog • 2 32-битных таймера общего назначения • USB 2.0 full-speed device/host/OTG со своим PHY на борту • USB 2.0 high-speed/full-speed device/host/OTG с отдельным DMA, со своим full-speed PHY на борту, есть поддержка ULPI • 10/100 Ethernet MAC с отдельным DMA, поддержка PHY-микросхем с интерфесами IEEE 1588v2, MII/RMII • 3x SPI (37.5 МБит/с), 2 из них с мультиплексированными полнодуплексными I2S для качественной передачи звука • 3x I2C с поддержкой SMBus/PMBus • 4x USART, 2x UART: 10.5 МБит/с, интерфейс ISO 7816, LIN, IrDA, modem control • 2x CAN (2.0B Active) • SDIO (для SD-карт) • DCMI — [от 8 до 14]-битный параллельный интерфейс камеры (до 54 МБайт/с) • Аналоговый генератор случайных чисел • Встроенный модуль расчёта CRC • 82x GPIO (выводы I/O) • RTC (Real-Time Clock) • 3 12-битных АЦП, 2.4 миллиона выборок в секунду, 16 каналов, 7.2 миллиона выборок в секунду в режиме тройного чередования • 2 12-битных ЦАП • Контроллер DMA с 16 каналами и поддержкой FIFO и пакетной передачи • Параллельный интерфейс LCD, режимы 8080/6800 • FSMC — контроллер статической памяти с поддержкой Compact Flash, SRAM, PSRAM, NOR и NAND • Возможность отладки по JTAG или SWD

Что ещё установлено на плате: • Отладчик ST-Link для отладки и прошивки МК, выведен разъём SWD для программирования других плат и контролллеров • Есть выводы для внешнего питания 5 и 3 В • Есть кнопка сброса • Четыре светодиода и одна кнопка, доступные для программирования • Все 100 выводов МК выведены по бокам платы штырьками по два ряда • LIS302DL — MEMS-датчик движения, 3х-осевой цифровой акселерометр • MP45DT02 — цифровой MEMS-микрофон • CS43L22 — аудио-ЦАП со встроенным драйвером динамиков класса D • Для USB OTG выведен разъём micro-USB. Если плату с заводской прошивкой подключить через этот разъём к компьютеру, то она будет вести себя как джойстик класса USB HID.

STM32 ST-LINK Utility Данную программу удобно использовать для прошивки микроконтроллера при помощи hex файла. Подсоединяем плату к ПК при помощи кабеля USB – miniUSB. Нажимаем на панели инструментов Connect.

Выбираем hex файл для прошивки (можно просто перетащить файл в основное окно программы).

Прошиваем плату Результаты прошивки отображаются в командной строке.

Keil uVision4 Монстр программирования. Умеет делать абсолютно все, даже то, что не умеет 😉

Создадим новую папку, куда будем помещать все наши проекты. Например, STM32. В этой папке создадим папку для первого проекта. Назовем ее 00_Test. Так же в папке STM32 создадим папку _Lib – сюда мы поместим фалы библиотек CMSIS и Standard Peripheral Library, и каждый новый проект будет ссылаться на эту папку в поиске библиотек. В папке 00_Test создадим папки: Project – здесь будут служебные файлы, которые будет создавать программа Keil uVision4 для данного, конкретного проекта. user – файлы пользовательского кода (программа, которая будет зашиваться в микроконтроллер). В этой папке создаем текстовый файл main.c. Напишем в нем коротенький код

#include «stm32f4xx.h» int main(void) { while(1) {} }

Этот код нам понадобится потом.

P.S.: имена папок, а так же структура проекта – личное дело программиста, но надо стремиться к упорядоченному структурированию, чтобы проект был “читабельным” для других программистов. Папку Project можно и не создавать, но тогда все служебные файлы будут “замусоривать” корневой каталог папки 00_Test.

Вот, что должно получится: Теперь разберемся с библиотеками.

Будем использовать 2 библиотеки:

1. CMSIS (выпускает фирма ARM) 2. Standard Peripheral Library (выпускает фирма STMicroelectronics)

Обе библиотеки бесплатны и доступны для скачивания (эти две библиотеки объединены в одном архиве) на www.st.com/

Причем есть два варианта библиотеки.

1. Библиотека для микроконтроллера STM32F407VGT6 вообще STM32F4xx_DSP_StdPeriph_Lib_V1.3.0 (stm32f4_dsp_stdperiph_lib.zip)

www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN11/PF252140?s_searchtype=partnumber# 2. Библиотека конкретно для тестовой платы STM32F4DISCOVERY STM32F4 -Discovery_FW_V1.1.0 (stsw-stm32068.zip)

www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743/PF257904?s_searchtype=keyword

Мы будем пользоваться библиотекой STM32F4xx_DSP_StdPeriph_Lib_V1.3.0

Заходим в папку STM32F4xx_DSP_StdPeriph_Lib_V1.3.0 ↓ Libraries ↓ И копируем две папки CMSIS и STM32F4xx_StdPeriph_Driver в нашу папку _Lib

Удаляем в папке CMSIS (которую мы скопировали в _Lib) все, кроме папки Device.

Заходим в папку STM32F4xx_DSP_StdPeriph_Lib_V1.3.0 ↓ Project ↓ STM32F4xx_StdPeriph_Examples ↓ ADC ↓ ADC_DMA ↓ Копируем файл stm32f4xx_conf.h в нашу папку STM32F4xx_StdPeriph_Driver Далее проделаем следующие манипуляции:

_Lib ↓ CMSIS ↓ Device ↓ ST ↓ STM32F4xx ↓ Include ↓ В свойствах файлов stm32f4xx.h и system_stm32f4xx.h снимаем галочку “Только чтение”

Запускаем программу Keil uVision4 и создаем новый проект.

Путь для проекта указываем: STM32 ↓ 00_Test ↓ Project ↓ Имя проекта Test

Далее программа предлагает автоматически создать файл конфигурации данного микроконтроллера – startup_stm32f40xx.s. Соглашаемся.

В итоге получили:

Переименуем папку Source Group 1 (в которую программа поместила файл конфигурации микроконтроллера startup_stm32f40xx.s) в startup. Для этого щелкаем один раз левой кнопкой мыши по имени папки и нажимаем F2 – имя папки теперь доступно для переименования. Аналогичным образом переименовываем имя проекта из Target 1 в 00_Test.

Добавляем в проект папку user:

Добавим ранее созданный файл main.c. в папку user. Для этого дважды щелкаем левой кнопкой мыши по заголовку папки (или при помощи правой кнопки вызываем контекстное меню).

Итак, мы создали на жестком диске папку проекта 00_Test. В этой папке создали еще две папки: Project и user. Project – тут программа будет размещать свои служебные файлы и главный файл проекта Test.uvproj user – тут мы будем размещать файлы кода, который будем загружать в микроконтроллер. В среде программирования Keil uVision4 создали новый проект 00_Test. В структуре проекта сейчас две папки: startup и user startup – в этой папке находится файл конфигурации микроконтроллера user – в этой папке содержатся файлы из папки user, которая была создана ранее на жестком диске.

На жестком диске больше никаких папок создавать не будем. Но в среде программирования в структуре проекта создадим еще две папки: CMSIS и StdPeriphLib. В этих папках будут содержаться наши библиотеки.

Подключим к этим папкам необходимые файлы из папки _Lib.

Для CMSIS: _Lib ↓ CMSIS ↓ Device ↓ ST ↓ STM32F4xx ↓ Source ↓ Templates ↓ system_stm32f4xx.c

Для StdPeriphLib: _Lib ↓ STM32F4xx_StdPeriph_Driver ↓ src ↓ все файлы (кроме файла stm32f4xx_fmc.c)

В опциях проекта необходимо указать пути к этим папкам библиотек

В папке user откроем файл main.c, щелкаем правой кнопкой мыши по #include «stm32f4xx.h», и выбираем Open…

Далее снимаем комментарии в тех местах кода, как показано ниже

Далее необходимо настроить проект:

Запускаем компиляцию проекта – F7.

Если все правильно, то ошибок не должно быть.

Напишем несложный код для мигания светодиодом

Обращаю внимание, что код должен заканчиваться пустой строкой (строка №45).

Запустим компиляцию (F7). Теперь можно “зашить” проект в микроконтроллер:

Если все было сделано правильно, то на тестовой плате должен мигать зеленый светодиод. Чтобы выйти из окна отладчика, нажимаем Ctrl+F5.

УРА!!! Продолжение следует…

tqfp.org

Практический курс STM32. Урок 0

ПредисловиеПримерно год назад, освоив MSP430 я решил подобраться к ARM. Купил себе F4-Discovery, но вот засада, если у Texas Instruments был отличнейший учебник, который позволял на практике освоить MSP в кратчайшие сроки, то с STM32 дела обстояли намного хуже: половина уроков была по серии F0(Cortex-M0 слегка далек от M4 знаете ли), остальные же уроки либо были предназначены для людей имевших ранее дело с ARM, либо основывалась на магии, то есть «вставляем вот этот кусок кода, нажимаем такую-то кнопку, смотрим на плату. Ура, светодиоды мигают, поздравляем» без объяснений что какой кусок кода делает.

Но недавно я решил все-таки достать пыльный Discovery и освоить STM32 от и до. Думаю лучший способ сделать это — написать цикл обучающих статей(если хотите, конспект).

О чем и для кого этот курсПрежде всего хочу сразу оговорить, что в основном курс будет касаться серии STM32-F4. Это Cortex-M4, который является прямым наследником Cortex-M3(STM32- L1, F1, F2) и отличается от него главным образом ядром с наличием DSP (цифрового сигнального процессора) и FPU (модуля операций с плавающей запятой).

Второй момент. Курс предназначен для новичков и многие конечно сочтут приведенные в нем описания базовых вещей слишком элементарными и излишними, но я не считаю, что освоение STM32 нужно начинать с освоения 8051, PIC’ов и AVR’ок, зачем? Времена когда компании-производители ограничивались выпуском лишь даташитов в качестве документации давно прошли: сейчас каждый производитель старается максимально популяризировать свой продукт и сегодня микроконтроллеры стали доступны широкой аудитории. Не буду начинать холивар STM vs. AVR, скажу лишь, что Cortex — новее, дешевле и перспективнее. Но есть два существенных недостатка, мешающих новичкам начинать знакомство с микроконтроллерами сразу с Cortex’ов:

  1. Мелкие корпуса — рекомендую посмотреть видео/почитать статьи по пайке и обзавестись более-менее приличным инструментом.
  2. Отсутствие единого руководства. Надеюсь мой курс сильно сэкономит вам время в поиске документации или руководства как провернуть ту или иную операцию.

Все что хотел сказать в предисловии — сказал. Ну что? Поехали.ДокументацияОбзор платы F4-Discovery можно посмотреть тут. На плате установлен камень STM32F407VG. Идем за документацией к нему сюда(ссылку стоит добавить в закладки), открываем вкладку Design Resources, скачиваем:

  1. Из Product Specifications — DS8626: ARM Cortex-M4 32b MCU+FPU, 10DMIPS, up to 1MB Flash/192+4KB RAM, USB OTG HS/FS, Ethernet, 17 TIMs, 3 ADCs, 15 comm. interfaces & camera. Это Даташит, в нем описана конкретная специфика конкретного контроллера семейства. Даташит как бы уточняет и дополняет Справочное руководство(о нем чуть ниже).
  2. Из Reference Manual — RM0090: STM32F405xx/07xx, STM32F415xx/17xx, STM32F42xxx and STM32F43xxx advanced ARM-based 32-bit MCUs. Это то самое Справочное руководство(далее — СР). Оно описывает серию из нескольких микроконтроллеров. Этот документ станет основным талмудом по части железа. В Даташит же будем лезть когда чего-то не найдем в СР или если нам потребуется что-либо уточнить. Обычно в таких случаях в СР дается прямая отсылка, мол «смотрите даташит на конкретный кристалл»
  3. Из Related Tools and Software — STSW-STM32065: STM32F4 DSP and standard peripherals library. Это просто гениальная библиотека от ST, которая значительно упрощает жизнь при написании и переносе кода, она позволяет думать на уровне архитектуры в целом, а не на уровне скажем регистров. Даже не знаю, почему ST ее так запрятала, видимо скромничают =). Из скачанного архива нам потребуется файл «stm32f4xx_dsp_stdperiph_lib_um.chm». Он представляет собой автоматически собранную из сопровождения к коду библиотеки документацию, следовательно то же самое можно увидеть и в .h или .c файлах. Тут уже кому как удобнее. Остальные файлы из архива нам не понадобятся, так как библиотеку будем подключать непосредственно из «репозитория» IDE.

Ну и поскольку в качестве отладочной платы у нас фигурирует F4-Discovery, неплохо бы знать, куда что подключено. Не вопрос, идем сюда(рекомендую также добавить в закладки) и скачиваем:

  1. Из User Manual — UM1472: Discovery kit for STM32F407/417 lines. Это руководство к плате. Рекомендуется заглядывать сюда перед тем, как что-то к ней подключить.
  2. Из Schematic Pack — STM32F4DISCOVERY schematics(а больше и нечего). Достаем из архива pdf’ку со схемами, кладем к остальным документам.

Кстати тут же в Related Tools and Software есть набор с туевой хучей примеров на все случаи жизни, но он нам пока не понадобиться, ведь у нас курс «с нуля»Установка IDEВыбор IDE для Cortex’ов действительно велик. Сама ST рекомендует использовать следующие:

  • Keil MDK-ARM
  • IAR Embedded Workbench for ARM (EWARM)
  • Atollic TrueSTUDIO
  • Altium TASKING VX-Toolset

Но мы ST не послушаем. Все эти IDE коммерческие и стоят денег. Есть у них и бесплатные версии с ограничениями(и их вполне достаточно для начала), но ограничения — это не по-джедайски. В качестве альтернативы будем использовать бесплатную CooCox CoIDE(в простонародье — кокос), которая не уступает коммерческим. Она основана на Eclipse и самодостаточна. Версии для Linux у них правда нет(только обещают ее скоро сделать). Но думаю линуксоиды без проблем могут собрать что-то подобное из Eclipse+ARM Plugin+GCC ARM Toolchain. Нам же никаких плясок с бубном ни во время установки, ни во время использования не потребуется, все вкусности «из коробки». Приступим же к установке.

  1. Идем на ST и скачиваем ST-LINK utility. Устанавливаем. Эта штука является продвинутым программатором(только не подумайте что мы будем отладки ради зашивать через нее в камень скомпилированный код — нет, у нас ведь для таких целей есть кокос). Кстати в случае необходимости можно обновить ПО самого ST-Link(встроенный в Discovery программатор) через нее же. Отдельно драйвера ставить не нужно, они в этот установщик уже включены.
  2. Идем на оффсайт кокоса и скачиваем CoIDE. Устанавливаем. Крайне рекомендую скачивать и устанавливать через CoCenter, он значительно упрощает обновление в дальнейшем.
  3. Идем на ланчпад и скачиваем последнюю версию любезно собранного для нас тулчейна (gcc-arm-none-eabi-тратата-win32.exe). Устанавливаем, лучше директорию установки не менять.
  4. Открываем CoIDE. Сверху нажимаем Project -> Select Toolchain Path Ну и выбираем директорию установки тулчейна, а в ней bin.

P.S.На сегодня все, спасибо за внимание. Завтра напишу урок 1, там познакомимся с GPIO.

we.easyelectronics.ru

casa-project.ru

Изучение STM32. Уроки по программированию STM32F4 Discovery. / STM32 / Сообщество EasyElectronics.ru

Как же Вы паяете SMD 0603, да даже хотя бы 1206?

У меня ARDO 2000-го года выпуска, из тех, что были MADE IN ITALY, т.е. сделана «белыми» людьми по стандартам не постиндустриальной, а еще индустриальной эпохи, без MCU и LCD-дисплеев — все на электро-механике.

За эти 15 лет она ни разу не ломалась, не смотря на то, что я ее ни разу не разбирал, не чистил ни фильтра, ни насос. Но в последнее время старушка начала кряхтеть, когда сливает воду (видимо откачивающий насос вконец уже забился), но дело свое делает — и стирает, и отжимает, как и всегда.

Иногда я подхожу к ней в эти моменты, похлопываю ее по стальным, покрытым белой эмалью бокам, нюхаю_носом воздух(не горит ли уже изоляция обмотки движка): Синьорина, ну давай еще немного — это еще не finale di mortale momento!

Поэтому периодически за последние полгода мне приходит в голову мысля о покупке новой стиральной машинки. Т.к. я живу уже в XXI веке — решил и я воспользоваться его плодами в этой отрасли, т.е. обратил свое внимание на машинки фирмы LG с технологией Direct Drive©.

Проходя мимо «Эльдорадо» или «М-Видео», вспоминаю об этом и иду сразу прямиком в отдел стиральных машин, но там этих самых LG 100500 моделей и все с Direct Drive. Я смотрю на них и вхожу в ступор, т.е. в состояние полной невозможности выбора. Это происходит еще и от того, что я приобрел весьма скверный характер за годы жизни при капитализме — стал мелочным, жадным, подозрительным и абсолютно не верящим тому, что говорят люди(особенно, если это барыги или какие их холуи), человеком. И вот так, со стеклянными глазами я могу стоять посреди торгового зала минут 10-15, находясь в автоколебательном движении мозга между оптимизмом желания всех новых фич и удобств и пессимизмом жадности и неверия маркетинговой рекламе.

Вот поэтому то я и спросил чела, который этот выбор все же сделал. А он мне и говорит: Что-то «смеркаться стало»… Не может разобрать названия модели, написанной на машинке или в ее инструкции буквами минимум 1 см высотой! :DDD Т.к. он не пьет вроде «огненной воды», а тем более с содержанием метилового спирта, я и предположил, что возможно отравление какими-то другими ядами в результате хоббистско-профессиональной деятельности.

we.easyelectronics.ru