Практическое руководство по программированию STM-микроконтроллеров
Покупка
Основная коллекция
Тематика:
Микроэлектроника. Наноэлектроника
Издательство:
Томский политехнический университет
Авторы:
Торгаев Станислав Николаевич, Тригуб Максим Викторович, Мусоров Илья Сергеевич, Чертихина Дарья Сергеевна
Год издания: 2015
Кол-во страниц: 111
Дополнительно
В пособии рассмотрены вопросы программирования микроконтроллеров STM8S, STM32F10x и STM32F40х. Представлено большое количество примеров программ по настройке основных периферийных устройств для данных микроконтроллеров.
Предназначено для студентов, обучающихся по направлениям 110304 «Электроника и наноэлектроника», 120304 «Биотехнические системы и технологии».
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.04: Программная инженерия
- 11.03.04: Электроника и наноэлектроника
- 12.03.04: Биотехнические системы и технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральные государственные автономные образовательные учреждения высшего образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» Федеральное государственное бюджетное учреждение науки ИНСТИТУТ ОПТИКИ АТМОСФЕРЫ ИМ. В.Е. ЗУЕВА СИБИРСКОГО ОТДЕЛЕНИЯ РОССИЙСКОЙ АКАДЕМИИ НАУК С.Н. Торгаев, М.В. Тригуб, И.С. Мусоров, Д.С. Чертихина ПРАКТИЧЕСКОЕ РУКОВОДСТВО ПО ПРОГРАММИРОВАНИЮ STM-МИКРОКОНТРОЛЛЕРОВ Рекомендовано в качестве учебного пособия Редакционно-издательским советом Томского политехнического университета Издательство Томского политехнического университета 2015
УДК 681.322 (075.8) ББК 32.973.26-04я73 Т60 Торгаев С.Н. Т60 Практическое руководство по программированию STMмикроконтроллеров : учебное пособие / С.Н. Торгаев, М.В. Тригуб, И.С. Мусоров, Д.С. Чертихина ; Томский политехнический университет. – Томск : Изд-во Томского политехнического университета, 2015. – 111 с. В пособии рассмотрены вопросы программирования микроконтроллеров STM8S, STM32F10x и STM32F40х. Представлено большое количество примеров программ по настройке основных периферийных устройств для данных микроконтроллеров. Предназначено для студентов, обучающихся по направлениям 110304 «Электроника и наноэлектроника», 120304 «Биотехнические системы и технологии». УДК 681.322 (075.8) ББК 32.973.26-04я73 Рецензенты Кандидат физико-математических наук научный сотрудник отдела высоких плотностей энергии Института сильноточной электроники СО РАН Д.В. Рыбка Кандидат технических наук младший научный сотрудник лаборатории МПКМ ИФПМ СО РАН М.В. Бурков © ФГАОУ ВО НИ ТПУ, 2015 © Торгаев С.Н., Тригуб М.В., Мусоров И.С., Чертихина Д.С., 2015 © Оформление. Издательство Томского политехнического университета, 2015
Содержание ВВЕДЕНИЕ ............................................................................................................... 5 ГЛАВА 1. ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ STM ............. 6 1.1. Загрузка программы в микроконтроллер STM8S ................................. 6 1.2. Загрузка программ в микроконтроллер STM32 .................................... 8 ГЛАВА 2. МИКРОКОНТРОЛЛЕР STM8S .......................................................... 10 2.1. Создание проекта в программе IAR Embedded Workbench ............... 10 2.2. Примеры программ для микроконтроллера STM8S ........................... 15 2.2.1. Программа настройки портов ввода-вывода ........................... 15 2.2.2. Программа, реализующая эффект маятника ............................ 16 2.2.3. Программа, реализующая отслеживание состояния кнопки .. 17 2.2.4. Программа, реализующая инверсию состояния светодиода по внешнему прерыванию .................................... 18 2.2.5. Программа, реализующая эффект бегущей единицы с переменным направлением ..................................................... 20 2.2.6. Программа, реализующая инверсию состояния светодиода по прерыванию таймера 1 .................................... 23 2.2.7. Программа, реализующая инверсию состояния светодиода по прерыванию таймера 2 .................................... 24 2.2.8. Программа, реализующая генерацию импульса по прерыванию двух таймеров.................................................. 25 2.2.9. Программа, реализующая ШИМ таймера 1 ............................. 28 2.2.10. Программа, реализующая эффект маятника по прерыванию таймера ............................................................. 30 2.2.11. Программа, реализующая работу модуля АЦП .................... 32 2.2.12. Программа, реализующая ШИМ таймера 1 с регулируемой длительностью сигнала посредством АЦП ... 34 2.2.13. Программа, реализующая настройку UART .......................... 36 ГЛАВА 3. МИКРОКОНТРОЛЛЕР STM32F1X ................................................... 39 3.1. Создание проекта в программе IAR Embedded Workbench ............... 39 3.2. Создание проекта в программе CooCox CoIDE ................................... 46 3.3. Примеры программ ................................................................................ 50 3.3.1. Программа настройки портов .................................................... 50 3.3.2. Программа инверсии состояния светодиода с использованием системной задержки ...................................... 51 3.3.3. Программа, реализующая эффект маятника ............................ 52 3.3.4. Программа, реализующая отслеживание состояния кнопки .. 55 3.3.5. Программа, реализующая переключение светодиода по внешнему прерыванию ......................................................... 56 3.3.6. Программа, реализующая эффект бегущей единицы ............. 57
3.3.7. Программа, реализующая мерцание светодиода с использованием прерываний таймера 2 ................................... 60 3.3.8. Программа, реализующая инверсию состояния светодиода с использованием прерываний таймера 6. ............................... 61 3.3.9. Программа, реализующая генерацию импульса с использованием прерываний по переполнению двух таймеров ...................................................................................... 63 3.3.10. Программа, реализующая эффект маятника по прерыванию таймера ............................................................. 64 3.3.11. Программа, реализующая отправку данных по UART ......... 66 3.3.12. Программа настройки и запуска ШИМ .................................. 69 3.3.13. Программа настройки и запуска АЦП .................................... 71 ГЛАВА 4. МИКРОКОНТРОЛЛЕР STM32F40Х ................................................. 74 4.1. Примеры программ ................................................................................ 74 4.1.1. Программа настройки портов на ввод-вывод .......................... 74 4.1.2. Программа настройки внешнего прерывания .......................... 75 4.1.3. Программа настройки USART .................................................. 77 4.1.4. Программа настройки таймера TIM8 ....................................... 80 4.1.5. Программа настройки таймера для генерации ШИМ. ............ 82 4.1.6. Программа настройки АЦП ....................................................... 84 4.1.7. Программа запуска преобразований АЦП с помощью таймера .................................................................... 87 4.1.8. Программа настройки ЦАП ....................................................... 90 ПРИЛОЖЕНИЕ 1 ПРОГРАММА ВЫВОДА СИМВОЛОВ НА ЖК-ДИСПЛЕЙ WH1602 НА МИКРОКОНТРОЛЛЕРЕ STM32F100RB ..................................................... 92 ПРИЛОЖЕНИЕ 2 ПРОГРАММА УПРАВЛЕНИЯ ШАГОВЫМ ДВИГАТЕЛЕМ НА МИКРОКОНТРОЛЛЕРЕ STM8S .......................................................................... 97 ПРИЛОЖЕНИЕ 3 ПРОГРАММА НАСТРОЙКИ ЦИФРОВОГО ДАТЧИКА ТЕМПЕРАТУРЫ D18B20 И ВЫВОД ТЕМПЕРАТУРЫ НА ЖК-ДИСПЛЕЙ WH1602 ............. 100 ПРИЛОЖЕНИЕ 4 ПРОГРАММА РЕАЛИЗАЦИИ ЦИФРОВОГО ФИЛЬТРА НА МИКРОКОНТРОЛЛЕРЕ STM32F407 ......................................................... 106 СПИСОК ЛИТЕРАТУРЫ .................................................................................... 110
Введение На сегодняшний день большую популярность среди разработчиков электронной аппаратуры различного назначения получили микроконтроллеры компании STMicroelectronics. Это связано с тем, что данные микроконтроллеры имеют ряд преимуществ перед существующими аналогами. В частности микроконтроллеры STM в модельном ряду сохраняют так называемую совместимость pin-to-pin, т. е. есть возможность замены микроконтроллера на более современную модель, имеющую большую память и более «богатую» периферию. Для сохранения совместимости создается набор периферийных устройств на весь модельный ряд. При этом при разработке конкретного микроконтроллера из модельного ряда для него используется определенная периферия с сохранением нумерации. Данное учебное пособие посвящено вопросам настройки периферийных устройств микроконтроллеров STM8S, STM32F10x и STM32F40х и их программированию. В пособии представлено большое количество примеров программ для вышеуказанных микроконтроллеров, написанных на языке С.
Глава 1. Программирование микроконтроллеров STM 1.1. Загрузка программы в микроконтроллер STM8S Для программирования микроконтроллеров семейства STM8 используется интерфейс SWIM (single wire interface module). Данный интерфейс позволяет осуществлять прошивку и отладку микроконтроллера, находящегося непосредственно в схеме. Загрузка программы в память микроконтроллера осуществляется с помощью программатора ST-LINK [1]. На отладочной плате STM8SVLDISCOVERY [1] модуль ST-LINK находится в верхней части (рис. 1.1). Для программирования используется 4 вывода (разъем CN7, см. рис. 1.1): 1. VDD; 2. SWIM (вывод PD1 порта D микроконтроллера); 3. GND; 4. RESET. Рис. 1.1. Отладочная плата STM8SVLDISCOVERY Для того чтобы использовать данный программатор для прошивки внешнего микроконтроллера, необходимо либо отделить его от основной платы микроконтроллера, либо удалить перемычки SB1 и SB2.
Кроме того, для программирования можно использовать программатор ST-LINK/V2 (рис. 1.2) [2]. Верхний разъем (20 выводов) используется для прошивки микроконтроллеров серии STM32, а нижний разъем, состоящий из четырех выводов и идентичный с разъемом CN7 (см. рис. 1.1), – для программирования микроконтроллеров STM8. Рис. 1.2. Программатор ST-LINK/V2 На рис. 1.3 представлена схема для прошивки и отладки микроконтроллеров семейства STM8S с помощью ST-LINK. Конденсатор C1 – конденсатор по питанию микросхемы (0,1–2,2 мкФ); конденсатор C2 следует выбирать из диапазона 470–3300 нФ. На плате STM8SVLDISCOVERY конденсатор С2 – электролитический конденсатор с емкостью 680 нФ [1]. Первый и третий выводы ST-LINK (VDD и GND) не являются источниками питания для микроконтроллера, их соединяют с выводами питания микроконтроллера для согласования напряжений. Рис. 1.3. Схема включения микроконтроллера при загрузке программы
1.2. Загрузка программ в микроконтроллер STM32 Для программирования микроконтроллеров семейства STM32 используются интерфейсы JTAG (Joint Test Action Group) и SWD (Serial Wire Debugging). На рис. 1.4 изображена отладочная плата STM32VLDISCOVERY [3]. В верхней ее части находится отладчик STLINK. Для прошивки микроконтроллера, установленного на данную отладочную плату, на разъеме CN3 должны быть установлены 2 перемычки, как показано на рис. 1.4. Прошивка и отладка осуществляются по интерфейсу SWD. При удалении перемычек с разъема CN3 отладчик ST-LINK будет загружать программу в микроконтроллер, подключенный к разъему CN2. Для этого необходимо соединить общие точки микроконтроллера и ST-LINK, а также выводы микроконтроллера SWDIO (PA13) и SWDCLK (PA14) соединить с контактами 4 и 2 разъема CN2 соответственно (рис. 1.5) [3]. Рис. 1.4. Отладочная плата STM32VLDISCOVERY
Также для прошивки и отладки микроконтроллеров STM32 можно использовать программатор ST-LINK/V2 (разъем на 20 контактов). На рис. 1.5 показана схема подключения микроконтроллеров STM32 к ST-LINK/V2 для прошивки по интерфейсу SWD [3]. Рис. 1.5. Схема подключения микроконтроллеров STM32 к ST-LINK/V2 для прошивки по интерфейсу SWD Контроллеры серии STM32 обычно имеют несколько выводов питания (VDD_1 (вывод питания) – VSS_1 (общий вывод), VDD_2 – VSS_2 и т. д., а также VDDA – VSSA). Перед прошивкой контроллера необходимо подать напряжение питания на все выводы питания цифровой части (VDD_1, VDD_2 и т. д.) и аналоговой части (VDDA).
Глава 2. Микроконтроллер STM8S 2.1. Создание проекта в программе IAR Embedded Workbench Создание проекта в среде IAR Embedded Workbench осуществляется по следующему алгоритму: 1. Запускаем среду IAR Embedded Workbench for STMicroelectronics STM8. На рис. 2.1 представлен внешний вид стартового окна программы. Рис. 2.1. Стартовое окно программы 2. Для создания нового проекта необходимо зайти в меню Project и выбрать пункт Create new project… (рис. 2.2). 3. Рис. 2.2. Окно создания нового проекта