No Image

Keil uvision 5 stm32 обучение

СОДЕРЖАНИЕ
0 просмотров
11 марта 2020

Урок 1

Вводим на поисковом сайте строку stm32f4 spl

Скачиваем отсюда библиотеку

Использовать мы будем отладочную плату STM32F4-DISCOVERY.

Запускаем там pack installer

Слева выбираем наш контроллер

А справа затем Device Specific и жмем Install.

После загрузки пакета выбираем справа еще ARM::CMSIS также жмем Install.

Создаем новый проект Project->New uVision Project

Даем ему имя, выбираем контроллер

Появляется Manage Run-Time Enveroment

Выбираем CMSIS->CORE и Device->Startup, ставим галки напротив и жмем «ОК»

В Target1 добавляем новую папки pl, а папку Source Group 1 переименовываем в user

Такие же папки создаем в физическом каталоге проекта.

Копируем файл STM32F4xx_DSP_StdPeriph_Lib_V1.6.1LibrariesCMSISDeviceSTSTM32F4xxIncludestm32f4xx.h

в папку pl и снимаем с него атрибут «для чтения».

Также в данную папку копируем две папки (inc и src) из STM32F4xx_DSP_StdPeriph_Lib_V1.6.1LibrariesSTM32F4xx_StdPeriph_Driver

Можно также снять с этих папок тот же атрибут, включая их содержимое.

Также из любого примера в STM32F4xx_DSP_StdPeriph_Lib_V1.6.1Project

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

В проекте в группу pl добавляем все файлы из папки plsrc, кроме файла stm32f4xx_fmc.c,

а также тот файл stm32f4xx_conf.h, который мы копировали выше.

В папке user создаем новый пустой файл main.c

Подключаем его в группу user в проекте

Пишем туда подключение добавленного хедер-файла вот таким образом (нажмите на картинку для увеличения размера)

Затем пропишем пути, выбрав контекстное меню на группе Target 1 и выбрав там следующий пункт

На закладке C/C++ нажмем … справа от поля Include Paths и в открывшийся диалог добавим пути

Добавим в main.c функцию main с бесконечным циклом

Вызовем контекстное меню на объявлении заголовочного файла

И внесем следующие исправления

и /*#define USE_STDPERIPH_DRIVER */

изменить 25000000 на 8000000 здесь

#define HSE_VALUE ((uint32_t) 8000000 ) /*!

Чтобы включить возможность писать комментарии на русском языке,

в панели инструментов нажимаем пункт «Configuration»

И выбираем там кодовую страницу

Также вот здесь можно поменять размер и тип шрифта в редакторе

Добавим код в main()

RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; // включим тактирование порта

GPIOD->MODER = 0x55000000; // включим ножки 12,13,14,15 на выход

GPIOD->OTYPER = 0; //подтянем резистор ко всем ножкам порта

GPIOD->OSPEEDR = 0; //установим скорость LOW на все лапки порта

GPIOD->ODR = 0xF000; // 12,13,14,15 лапки установим в 1, тем самым зажжем светодиод

Соберём код, прошьём контроллер и посмотрим результат

32 комментария на “ STM Урок 1. Установка Keil μVision ”

Для скачивания нужной STM32F10x_StdPeriph_Lib_V3.5.0 (например) не нужно ничего писать в строке. Идем на сайт http://www.st.com выбираем Products->Microcontrollers->STM32F1(например) и в Total Parts ищем свой МК (STM32f103c8t6 например — мой случай). Выбираем его. Идем вниз где расположены архивы MCUS EMBEDDED SOFTWARE. Уделяем внимание тем ссылкам которые начинаются с STSW-STM и среди них находим ту рядом с которой есть такое описание (с правой стороны) STM32F10x standard peripheral library. Скачиваем.

На момент съёмки урока и написания сценария было так.
Спасибо за подсказку!
Думаю, многим пригодится, хотя в актуальности на данный момент этой библиотеки, есть определённые сомнения.

Копируем файл STM32F4xx_DSP_StdPeriph_Lib_V1.6.1LibrariesCMSISDeviceSTSTM32F4xxIncludestm32f4xx.h

в папку pl и снимаем с него атрибут «для чтения».

Также в данную папку копируем две папки (inc и src) из STM32F4xx_DSP_StdPeriph_Lib_V1.6.1LibrariesSTM32F4xx_StdPeriph_Driver-А где их взять то?

Таким писарям статей нужно по рукам стучать…
«Скачиваем отсюда библиотеку «… А дальше что ? Что с ней делать ?
«Слева выбираем наш контроллер» … А если его нет ? Что ?

Посмотрите видеоурок, возможно Вам станет понятнее.
В любом случае, спасибо за критику, хотя конечно этому уроку уже более 2х лет.
Посмотрите последние уроки, заодно и оцените, исправился ли я за это время или нет.

Поддерживаю! Хорошо бы в духе уроков по AVR.

Я уже вторую неделю не могу диодом моргнуть на blue pill. И на борту программатот st-link.
Мануалы просто трубовые . У всех !
90% диких перепечаток .stm32 обзывают arduino . Ни у кого 5 лет подряд нет 3 бакса на программатор . Подключают всякие чёрт те што. Шьют где угодно , но только не в бесплатных от родной stm.
От самоката плату в openocd-0.10.0 перепрошил практически сразу.
Этот автор тоже перец . Я себе даже в дурном сне не могу представить total comander в пользовании . Зачем он в роликах щёлкает этим командером ?

Total commander — очень удобный файловый менеджер, большинство программистов, воспинанных на нортон командере им пользуются. Видно размер, расширение, время модификации файлов. Так что предъява не принимается.

ArduinoIDE полдня настраивается.

В уроках по AVR вы подробно рассказывали про регистры, хотелось бы и здесь.
Спасибо!

Имеется контроллер STM32L476 но нет к нему библиотек ни в Keil μVision3 ни в Keil μVision4, а Keil μVision5 нет

Непонятна цель манипуляций с переименовыванием папок, файлов, копированием туда — сюда. У меня проект заработал и без этих манипуляций. Тогда зачем эти получасовые танцы с бубнем при создании проекта — осталось загадкой. )))

Это такой порядок. А ещё для того, чтобы посмотреть, где всё находится. Цель моих занятий — не дать проект, который работает, а показать, почему оно работает.
Я очень рад, что у Вас всё заработало!

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

Читайте также:  Покрывало на большой угловой диван

И Вам также спасибо за интерес к ресурсу!
А вообще, по большому счёту, урок этот был записан очень давно, когда Keil 5 практически только появился, также невозможно было по-нормальному найти и собрать библиотеки, поэтому получилось у меня только вот так.

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

«Цель моих занятий — не дать проект, который работает, а показать, почему оно работает.»

Абсолютно не показали «почему это работает». Вот как Вы пришли к решению переименовывать папки, например? Если доступно объясните, то у остальных не будет вопросов. Также необходимо пояснять зачем эти файлы в данных папках, что они дают. Вы просто запутали начинающих. А гуру уже все умеют. Здесь надо как в детском саду:)

Я думаю, что это элементарно и все поняли, почему мы это делаем, так как данный урок был сделан 2,5 года назад, видео по нему «претерпело» 85 тысяч просмотров, 623 лайка к 59 дизлайкам, что составляет более 90 процентов и такой вопрос прозвучал за это время впервые.
Посему предъява не принимается.

Это не предъява. Если кто-то спросил, значит он не понял элементарного и хочет получить ответ (и до сих пор не получил). Если трудно объяснить — не напрягайся. Ведь у тебя столько лайков. Пойдем к другим изучать элементарное.

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

Пожалуйста поподробнее. И не надо, пожалуйста, угрожать дизлайками и разными там хейтерствами. Слава Богу, дизлайки сейчас ничем не грозаят, сейчас это в ранжирование ресурса не учитывается. Сейчас учитывается только общее время просмотра. Если Вы как-то хотите навредить какому-то каналу, единственное, что Вы можете сделать, это только поменьше его смотреть. Больше никак.
Что именно у Вас не получилось с установкой IDE?
Может быть то, что уроку уже 2,5 года на что-то повлияло, и сейчас уже установка как-то по-другому происходит. Я, например в ту пору ничего подобного и бесплатного по установке не нашел, поэтому и решил поделиться своими мыслями, как это делаю именно я. Мне кажется подробнее-то некуда.

Недовольства свои мамке с папкой своим высказывай, за то-что дебила вырастили. Если не можешь мозги включить, как программировать собираешься? К тому-же, тебе никто ничего не обязан. Нравится — читай, нет — иди лесом.
Автору СПАСИБО за ресурс.

Иван,
Спасибо за высокую оценку ресурса!
Только, пожалуйста, поаккуратней с высказываниями друг против друга, старайтесь как-то в личных сообщениях.

Автору большое спасибо за материал. Долго не знал как подойти к stm, какую среду выбрать и как откуда что брать. Очень помогло видео урока.

Хочу поблагодарить автора за данные уроки. Хочу задать вопрос. Для создания паяльноц станции нлвичку какую платформу выбрать stm32 или avr. Еще мне не понятно если я выберу stm32 f3 или f4, то я смогу шить только такие же контроллеры, которые установленные на отладочной плате? Ну и если stm 32то какую модель дискавери брать (или не дискавери)!?

Здравствуйте!
Спасибо!
Шить можно и желательно все-таки STM. А шить с помощью ST-Link, а не Discovery. Discovery — это отладочная плата, в которой стоит и контроллер и программатор ST-Link.

В вкладке выбора процессора нет списка процессоров. В чем причина?

Урок 1

Вводим на поисковом сайте строку stm32f4 spl

Скачиваем отсюда библиотеку

Использовать мы будем отладочную плату STM32F4-DISCOVERY.

Запускаем там pack installer

Слева выбираем наш контроллер

А справа затем Device Specific и жмем Install.

После загрузки пакета выбираем справа еще ARM::CMSIS также жмем Install.

Создаем новый проект Project->New uVision Project

Даем ему имя, выбираем контроллер

Появляется Manage Run-Time Enveroment

Выбираем CMSIS->CORE и Device->Startup, ставим галки напротив и жмем «ОК»

В Target1 добавляем новую папки pl, а папку Source Group 1 переименовываем в user

Такие же папки создаем в физическом каталоге проекта.

Копируем файл STM32F4xx_DSP_StdPeriph_Lib_V1.6.1LibrariesCMSISDeviceSTSTM32F4xxIncludestm32f4xx.h

в папку pl и снимаем с него атрибут «для чтения».

Также в данную папку копируем две папки (inc и src) из STM32F4xx_DSP_StdPeriph_Lib_V1.6.1LibrariesSTM32F4xx_StdPeriph_Driver

Можно также снять с этих папок тот же атрибут, включая их содержимое.

Также из любого примера в STM32F4xx_DSP_StdPeriph_Lib_V1.6.1Project

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

В проекте в группу pl добавляем все файлы из папки plsrc, кроме файла stm32f4xx_fmc.c,

а также тот файл stm32f4xx_conf.h, который мы копировали выше.

В папке user создаем новый пустой файл main.c

Подключаем его в группу user в проекте

Пишем туда подключение добавленного хедер-файла вот таким образом (нажмите на картинку для увеличения размера)

Затем пропишем пути, выбрав контекстное меню на группе Target 1 и выбрав там следующий пункт

Читайте также:  В чем измеряется освещенность помещения единица измерения

На закладке C/C++ нажмем … справа от поля Include Paths и в открывшийся диалог добавим пути

Добавим в main.c функцию main с бесконечным циклом

Вызовем контекстное меню на объявлении заголовочного файла

И внесем следующие исправления

и /*#define USE_STDPERIPH_DRIVER */

изменить 25000000 на 8000000 здесь

#define HSE_VALUE ((uint32_t) 8000000 ) /*!

Чтобы включить возможность писать комментарии на русском языке,

в панели инструментов нажимаем пункт «Configuration»

И выбираем там кодовую страницу

Также вот здесь можно поменять размер и тип шрифта в редакторе

Добавим код в main()

RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; // включим тактирование порта

GPIOD->MODER = 0x55000000; // включим ножки 12,13,14,15 на выход

GPIOD->OTYPER = 0; //подтянем резистор ко всем ножкам порта

GPIOD->OSPEEDR = 0; //установим скорость LOW на все лапки порта

GPIOD->ODR = 0xF000; // 12,13,14,15 лапки установим в 1, тем самым зажжем светодиод

Соберём код, прошьём контроллер и посмотрим результат

32 комментария на “ STM Урок 1. Установка Keil μVision ”

Для скачивания нужной STM32F10x_StdPeriph_Lib_V3.5.0 (например) не нужно ничего писать в строке. Идем на сайт http://www.st.com выбираем Products->Microcontrollers->STM32F1(например) и в Total Parts ищем свой МК (STM32f103c8t6 например — мой случай). Выбираем его. Идем вниз где расположены архивы MCUS EMBEDDED SOFTWARE. Уделяем внимание тем ссылкам которые начинаются с STSW-STM и среди них находим ту рядом с которой есть такое описание (с правой стороны) STM32F10x standard peripheral library. Скачиваем.

На момент съёмки урока и написания сценария было так.
Спасибо за подсказку!
Думаю, многим пригодится, хотя в актуальности на данный момент этой библиотеки, есть определённые сомнения.

Копируем файл STM32F4xx_DSP_StdPeriph_Lib_V1.6.1LibrariesCMSISDeviceSTSTM32F4xxIncludestm32f4xx.h

в папку pl и снимаем с него атрибут «для чтения».

Также в данную папку копируем две папки (inc и src) из STM32F4xx_DSP_StdPeriph_Lib_V1.6.1LibrariesSTM32F4xx_StdPeriph_Driver-А где их взять то?

Таким писарям статей нужно по рукам стучать…
«Скачиваем отсюда библиотеку «… А дальше что ? Что с ней делать ?
«Слева выбираем наш контроллер» … А если его нет ? Что ?

Посмотрите видеоурок, возможно Вам станет понятнее.
В любом случае, спасибо за критику, хотя конечно этому уроку уже более 2х лет.
Посмотрите последние уроки, заодно и оцените, исправился ли я за это время или нет.

Поддерживаю! Хорошо бы в духе уроков по AVR.

Я уже вторую неделю не могу диодом моргнуть на blue pill. И на борту программатот st-link.
Мануалы просто трубовые . У всех !
90% диких перепечаток .stm32 обзывают arduino . Ни у кого 5 лет подряд нет 3 бакса на программатор . Подключают всякие чёрт те што. Шьют где угодно , но только не в бесплатных от родной stm.
От самоката плату в openocd-0.10.0 перепрошил практически сразу.
Этот автор тоже перец . Я себе даже в дурном сне не могу представить total comander в пользовании . Зачем он в роликах щёлкает этим командером ?

Total commander — очень удобный файловый менеджер, большинство программистов, воспинанных на нортон командере им пользуются. Видно размер, расширение, время модификации файлов. Так что предъява не принимается.

ArduinoIDE полдня настраивается.

В уроках по AVR вы подробно рассказывали про регистры, хотелось бы и здесь.
Спасибо!

Имеется контроллер STM32L476 но нет к нему библиотек ни в Keil μVision3 ни в Keil μVision4, а Keil μVision5 нет

Непонятна цель манипуляций с переименовыванием папок, файлов, копированием туда — сюда. У меня проект заработал и без этих манипуляций. Тогда зачем эти получасовые танцы с бубнем при создании проекта — осталось загадкой. )))

Это такой порядок. А ещё для того, чтобы посмотреть, где всё находится. Цель моих занятий — не дать проект, который работает, а показать, почему оно работает.
Я очень рад, что у Вас всё заработало!

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

И Вам также спасибо за интерес к ресурсу!
А вообще, по большому счёту, урок этот был записан очень давно, когда Keil 5 практически только появился, также невозможно было по-нормальному найти и собрать библиотеки, поэтому получилось у меня только вот так.

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

«Цель моих занятий — не дать проект, который работает, а показать, почему оно работает.»

Абсолютно не показали «почему это работает». Вот как Вы пришли к решению переименовывать папки, например? Если доступно объясните, то у остальных не будет вопросов. Также необходимо пояснять зачем эти файлы в данных папках, что они дают. Вы просто запутали начинающих. А гуру уже все умеют. Здесь надо как в детском саду:)

Я думаю, что это элементарно и все поняли, почему мы это делаем, так как данный урок был сделан 2,5 года назад, видео по нему «претерпело» 85 тысяч просмотров, 623 лайка к 59 дизлайкам, что составляет более 90 процентов и такой вопрос прозвучал за это время впервые.
Посему предъява не принимается.

Читайте также:  Двп пропитка от влаги

Это не предъява. Если кто-то спросил, значит он не понял элементарного и хочет получить ответ (и до сих пор не получил). Если трудно объяснить — не напрягайся. Ведь у тебя столько лайков. Пойдем к другим изучать элементарное.

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

Пожалуйста поподробнее. И не надо, пожалуйста, угрожать дизлайками и разными там хейтерствами. Слава Богу, дизлайки сейчас ничем не грозаят, сейчас это в ранжирование ресурса не учитывается. Сейчас учитывается только общее время просмотра. Если Вы как-то хотите навредить какому-то каналу, единственное, что Вы можете сделать, это только поменьше его смотреть. Больше никак.
Что именно у Вас не получилось с установкой IDE?
Может быть то, что уроку уже 2,5 года на что-то повлияло, и сейчас уже установка как-то по-другому происходит. Я, например в ту пору ничего подобного и бесплатного по установке не нашел, поэтому и решил поделиться своими мыслями, как это делаю именно я. Мне кажется подробнее-то некуда.

Недовольства свои мамке с папкой своим высказывай, за то-что дебила вырастили. Если не можешь мозги включить, как программировать собираешься? К тому-же, тебе никто ничего не обязан. Нравится — читай, нет — иди лесом.
Автору СПАСИБО за ресурс.

Иван,
Спасибо за высокую оценку ресурса!
Только, пожалуйста, поаккуратней с высказываниями друг против друга, старайтесь как-то в личных сообщениях.

Автору большое спасибо за материал. Долго не знал как подойти к stm, какую среду выбрать и как откуда что брать. Очень помогло видео урока.

Хочу поблагодарить автора за данные уроки. Хочу задать вопрос. Для создания паяльноц станции нлвичку какую платформу выбрать stm32 или avr. Еще мне не понятно если я выберу stm32 f3 или f4, то я смогу шить только такие же контроллеры, которые установленные на отладочной плате? Ну и если stm 32то какую модель дискавери брать (или не дискавери)!?

Здравствуйте!
Спасибо!
Шить можно и желательно все-таки STM. А шить с помощью ST-Link, а не Discovery. Discovery — это отладочная плата, в которой стоит и контроллер и программатор ST-Link.

В вкладке выбора процессора нет списка процессоров. В чем причина?

Keil – Keil uVision5

Установка и настройка Keil. Создание первого проекта.
Официальный сайт: http://www.keil.com/
Платная среда разработки для микроконтроллеров STM32.
В бесплатном варианте имеет ограничение по объему программы до 32Кб.
Скачать можно с официального сайта.

Установка и настройка Keil

Скачиваем Keil с официального сайта и устанавливаем. При установке Keil, должны установиться драйвера для St-Link программатора. Я устанавливал версию Keil 5.13, поскольку на мою старенькую Windows XP версия Keil 5.22 устанавливаться не захотела.

PackInstaller

После установки запускаем Keil и кнопкой на тулбаре открываем PackInstaller

Справа в закладке Devices находим наш контроллер. В моем случае это STM32F103C8, после чего в закладке Packs слева по очереди инсталлируем все пакеты. Почему в PackInstaller все делается справа налево я так и не понял. Оставим это на совести разработчиков.

После того, как установим все пакеты, закрываем PackInstaller и создаем проект с помощью меню
Project -> New mVision Project…

Выбираем папку и указываем имя проекта.

После чего будет предложено выбрать микроконтроллер.

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

  • CMSIS-CORE – поддержка основного ядра ARM
  • System Startup – основной конфигурационный системный файл
  • Standard Peripherals Drivers Framework – стандартные драйверы периферии

И те компоненты, которые будут использоваться в проекте:

  • GPIO – управление выводами микроконтроллера
  • RCC – управление тактированием периферии

После того, как расставили галочки нажимаете в левом нижнем углу кнопку “Resolve” и только потом “ОК“. Окно должно закрыться.

Теперь создаем основной файл, в котором будет наша первая программа. Правой кнопкой мыши кликаем на Sourcegroup 1, далее Add New Irem to Group Source Group 1…

Указываем тип и имя файла.

После чего будет создан и открыт файл main.c.. Наберем в нем следующий текст программы:

Перед тем как компилировать программу нужно сделать некоторые настройки нашего проекта. Кликаем на иконке Options for Target… Откроется окно настроек проекта.

В закладке “Target” нужно указать тактовую частоту микроконтроллера.

В закладке “Output” нужно выбрать формат выходного файла.

В закладке “C/C++” указать в строке Define: следующие опции:

Без этих опций проект не будет нормально компилироваться. Можно выбрать уровень оптимизации.

Теперь можно закрыть окно настроек и попробовать собрать проект, выполнив пункт меню Project -> Build target.

После удачной сборки должны увидеть такую картину:

Также следует обратить внимание на IDE для STM32 System Workbench for STM32
Лично я перешел на System Workbench for STM32

1 коментар: Keil uVision5 – IDE для STM32

При компилировании проекта выдает кучу ошибок:

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector