63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
|
|
1 | |
С чего начать изучать программирование STM32?02.03.2018, 22:40. Показов 15652. Ответов 9
Метки нет (Все метки)
В связи с перспективности этих микрочипов, задумался изучить тему о программирование данных микроконтроллеров.
Так, что есть: 1) Среда разработки Keil μVision 2) Программатор - отладчик STM32F4DISCOVERY. С каких уроков (книг, туториалов) начать? Можно даже на английском, главное требование, чтобы каждый шаг был подробно описан.
0
|
02.03.2018, 22:40 | |
Ответы с готовыми решениями:
9
нуберский вопрос про STM32 или с чего начать Ассемблер, с чего начать изучать? Я только начинаю изучать AVR. Может сразу начать с STM32? Вроде хвалят С чего начать? программирование микроконтроллеров |
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
05.03.2018, 09:23 | 2 |
Photofenix, Путь развития в мире микроконтроллеров STM32
Добавлено через 47 секунд + смотрите примеры с сайта ST
2
|
39 / 37 / 21
Регистрация: 02.04.2016
Сообщений: 127
|
|
09.03.2018, 12:02 | 3 |
Photofenix, опыт в программировании других микроконтроллеров есть? Может ардуиновские платки?
1
|
0 / 0 / 0
Регистрация: 09.03.2018
Сообщений: 23
|
|
14.03.2018, 21:30 | 4 |
А если нету опыта программирования вообще? Что делать?
Ну я потихоньку конечно ламаю его. Я пытался и низкоуровнего (без библиотек) в него подлезть. Но ничего не получилось с первого раза. Да и с третьего раза тоже. Ошибка какая то. Наверно. Скачал всякие сервис мануалы и прочую фирменную литературу со схемами и регистрами. И понубасовски попытался полистать это все. И я понял, что регистры за что то отвечают. И их нужно тактировать перед использованием. В них можно как то записывать значения чтобы что то зафунтациклировало. Но больше всего у меня получилось, когда я установил куб эмикс с его хал библиотекой и кейл. И тогда я смог мингнуть светодиодом даже. А потом еще и смог ацп сделать чтобы оно слало по усарту. Но там меня удивило, что нужно писать свою программу посередине какой то еще программы. В куче кода с обеих сторон. Назначение которого мне по большей части непонятно. На каком языке stm32 програмируется? С или С++? Может мануал от этих языков мне поможет?
0
|
86 / 85 / 4
Регистрация: 20.11.2016
Сообщений: 259
|
|
14.03.2018, 23:05 | 6 |
http://givi.olnd.ru/kr2/
Вот хороший мануал по Си ) в Visual Studio хорошо тренироваться на этом языке. Сначала сочиняем и отлаживаем в этой среде алгоритмы, а потом переносим их в свои программы в среду Кейл или IAR
0
|
15.03.2018, 00:17 | 7 | |||||
Тогда на уровне регистров будет не просто.
Можно взять какую-то библиотеку, скажем SPL которая немного упростит разработку программы. Для начала на мой взгляд хорошо подходит среда EmBitz. Она по умолчанию при создании проекта добавляет в него CMSIS, SPL и другие нужные файлы. Остается только открыть main.c и начать писать программу. К примеру если создать проект под STM32F103C8T6 и в main.c написать код (часть этого кода будет в нем после создания проекта).
Для тестирования подойдет эта плата. Кликните здесь для просмотра всего текста
0
|
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
|
|
16.03.2018, 10:49 | 8 |
Я так же учусь как и вы, но на это попробую ответить.
Если сгенерировать Кубом проект, открыть его в Кейле и смотреть код по порядку сверху вниз: 1. Идет подключение различных библиотек при помощи команды #include. Например, автоматически подключилась собственная библиотека "stm32f1xx_hal.h". Уберите ее, и компилятор не поймет, как работать с переменными, ножками микроконтроллера и т.д. Туда же, со временем, будете подключать свои собственные библиотеки. 2. Удут названия функций, которые будут использоваться ниже в файле main. Прототипы. Например, описан прототип функции void SystemClock_Config(void); Сама эта функция будет описана ниже, в программе. 3. int main(void) { Отсюда программа начнет свою работу после запуска. Еще ее называют точкой входа. Когда программа запустится, начнет выполняться содержимое функции int main(void) { }. Например, выполнится спрятанная внутри собственных библиотек функция HAL_Init(); Она, вроде, настраивает системный таймер. Посмотреть содержимое этой функции можно, если кликнуть по HAL_Init() левой мышкой, затем правой и в меню выбрать Go To Definition of "HAL_Init". Так можно смотреть содержимое любой функции и не только. Например так можно увидеть, из чего состоит команда GPIO_PIN_6 и т.д. Но, не забудьте перед этим собрать проект. Иначе ничего не увидите. 4. Следующим в main идет SystemClock_Config(); Она нигде в в недрах библиотек не спрятана. Запустившись она выполнит то, что описано в сгенерированном коде ниже. Если полистать программу и найти ее, то там можно увидеть настройки тактирования микропроцессора. Когда в Кубе вы настраивали Clock Configuration, то в SystemClock_Config() можно увидеть итог этих настроек. 5. Дальше выполнится MX_GPIO_Init(); Она тоже нигде в библиотеках не спрятана, а описана ниже в основной программе. Когда в Кубе вы настраивали ножки микроконтроллера, то там можно увидеть итог этих настроек. 6. После всех этих автоматически созданных настроек вы наконец попадаете в бесконечный цикл while (1) { }. Вот там уже можете написать программу моргания светодиодом через управление портами и задержками. Программа там будет крититься до бесконечности. Это самый простой вариант моргания светодиодом но не хороший. Для начала самое оно, но потом нужно учить прерывания и таймеры. Чем я сейчас и занимаюсь ))
1
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 4
|
|
20.04.2022, 05:03 | 9 |
Здравствуйте. А не подскажете литературу по которой вы изучаете микроконтроллер?
0
|
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
|
|
20.04.2022, 08:26 | 10 |
Datasheet, ReferenceManual в первую очередь. Потом статьи в интернете.
Ну и для общего развития
Курс DiHalt'а на изиэлектрониксе Практический курс микропроцессорной техники на базе процессорных ядер ARM-Cortex-M3/M4/M4F Козаченко В.Ф., Алямкин Д.И., Анучин А.С., и др.
0
|
20.04.2022, 08:26 | |
20.04.2022, 08:26 | |
Помогаю со студенческими работами здесь
10
С чего начать техническое программирование? C Чего Начать Изучать Программирование 1с ? С чего начать изучать 1С программирование? с чего можно начать изучать программирование? с чего начать изучать программирование в Linux С чего начать изучать серверное программирование на js? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |