Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Практическое руководство по программированию STM-микроконтроллеров

Покупка
Основная коллекция
Артикул: 643630.01.99
Доступ онлайн
300 ₽
В корзину
В пособии рассмотрены вопросы программирования микроконтроллеров STM8S, STM32F10x и STM32F40х. Представлено большое количество примеров программ по настройке основных периферийных устройств для данных микроконтроллеров. Предназначено для студентов, обучающихся по направлениям 110304 «Электроника и наноэлектроника», 120304 «Биотехнические системы и технологии».
Практическое руководство по программированию STM-микроконтроллеров : учебное пособие / С. Н. Торгаев, М. В. Тригуб, И. С. Мусоров, Д. С. Чертихина. - Томск : Изд-во Томского политех. университета, 2015. - 111 с. - Текст : электронный. - URL: https://znanium.com/catalog/product/701847 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ 
Федеральные государственные автономные образовательные учреждения высшего образования 
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ 
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» 
 «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ 
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» 
Федеральное государственное бюджетное учреждение науки 
ИНСТИТУТ ОПТИКИ АТМОСФЕРЫ ИМ. В.Е. ЗУЕВА  
СИБИРСКОГО ОТДЕЛЕНИЯ РОССИЙСКОЙ АКАДЕМИИ НАУК 

 
 
 
 
С.Н. Торгаев, М.В. Тригуб,  
И.С. Мусоров, Д.С. Чертихина 
 
 
 
 
ПРАКТИЧЕСКОЕ РУКОВОДСТВО  
ПО ПРОГРАММИРОВАНИЮ  
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. Окно создания нового проекта 

Доступ онлайн
300 ₽
В корзину