Начал изучать StM32, как замену AVR в несложных и средних проектах. Выбрал для себя среду "mikroBasic for ARM" от MikroElektronika, так как язык подобный Basic, мне удобен, знаком, и есть опыт (AVR). К сожалению, очень мало информации по этой среде разработки. Используя STM32CubeMX как справочник, мне удалось настроить тактирование , а также немного разобраться с прерываниями, портами, и помигать светодиодами разными способами. Предлагаю обмен опытом работы с StM32, без использования Си.
Мужик в скафандре сено косит. Мимо проходит женщина, и говорит: — Мужик, ты что делаешь? Мужик отвечает: — Сено кошу. Женщина: — А почему в скафандре? Мужик: — Трудности люблю. Женщина: — Плюнь ты на эти трудности, пошли лучше потр@хаемся! Мужик, подумав: — Ладно, пошли, только в гамаке. И — стоя.
Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.
Что привлекает в SiC по сравнению с кремнием, и какие особенности делают компоненты SiC часто используемыми, несмотря на более высокую стоимость в сравнении с кремниевыми высоковольтными устройствами? – Объясняет специалист ведущего разработчика силовых приборов из карбида кремния, компании Infineon.
VladislavS, я бы даже сказал, что одного ассемблера достаточно. Так как большинство проблем у изучающих С возникает с указателями, а у человека, знающего ассемблер, с указателями уж точно никаких проблем не будет.
VladislavS, Вы сильно упрощаете. После Паскаля или Бэйсика народ фразу "указатель на указатель" или, тем более, "таблица указателей на функции" воспринимает с ужасом. А то, что операция присваивания является именно операцией, имеющей значение, а не оператором, ввоодит начинающих в ступор.
Проще китайский выучить чем си,к тому же это дело каждого,умеешь на си-флаг тебе в руки и барабан на шею,нефиг его навязывать... Я где то форум видел по mikroBasic for ARM,надо поискать
А вы всё сильно усложняете. Если человек никогда в жизни не пользовался "указателем на указатель", то никто его на первых порах не заставляет это делать. Придёт время - научится.
Цитата:
Я понял, в чем ваша беда. Вы слишком серьезны. Все глупости на земле делаются именно с этим выражением лица… Улыбайтесь, господа, улыбайтесь.
Novice user, а никто С и не навязывает. Просто единственная альтернатива для С на МК - это ассемблер, который изучить еще сложнее, чем С. Собственно говоря, именно поэтому стандарт MISRA существует только для С/C++. Для тех же, кто не силен в программировании есть PLC и LD/FBD
VladislavS, я не усложняю, это жизнь. На МК без косвенной адресации переменных и функций не обойтись. Регистрация любого обработчика прерывания - уже есть запись указателя на функцию в таблицу прерываний. А ограниченное количество памяти вынуждает пользоваться динамическими структурами данных (а значит и указателями на указатели), вместо так любимых начинающими массивов.
Да никто ничего не усложняет,я сам сижу на Basic для авр,тоже думаю начинать осваивать стм,а си ну вот не дается и все тут-хоть умри,там много непонятного и спросить негде-смотрят как на дурака и отвечают как во 2 посте этой темы Я и книжки покупал,и качал эти квавры,до сих пор не могу понять почему у меня всегда компилируется с многими ошибками,синтаксис басик и си очень неродня,например в басик не пишут в операции сравнения два раза равно,три раза равно,палка равно,палка-палка-равно-палка и т д,а тут еще указатель на указатель таблицы указателей на указатели таблиц функций указателей на функции указателей и прочая дребедень
Novice user, не стесняйтесь задавать вопросы, если что-то непонятно. Вот и все. Можно даже мне в личку. Постараюсь отвечать оперативно, если, конечно, не будет вала по десятку вопросов в день
Регистрация любого обработчика прерывания - уже есть запись указателя на функцию в таблицу прерываний.
Знаю большое количество разработчиков, которые не то что бы не делали/редактировали стартапы, но даже не открывали их никогда. На кортексах обработчик прерываний - просто функция с определённым в стартапе именем. Много ума не надо определить
А ограниченное количество памяти вынуждает пользоваться динамическими структурами данных (а значит и указателями на указатели), вместо так любимых начинающими массивов.
Многие вообще считают неприемлемым динамическую память на микроконтроллерах, и ничего как-то с этим живут.
Базовые возможности Си не сильно отличаются от того же паскакаля. Никто не заставляет с первого дня все "выкрутасы" применять.
VladislavS, если уж про ARM вести речь, то там в CMSIS функций, которым в качестве параметров надо передавать указатели на функции - вагон и маленькая тележка. Не считая тех же векторов прервываний, есть еще и масса параметров указателей на calback функции.
И не путайте динамические структуры данных и динамическое распределение памяти. Первые часто используются даже в программной памяти, а вот без динамического выделения памяти, иногда, действительно можно обойтись. Но опять таки, далеко не всегда. Тот же граф (или его вырожденный случай - дерево) без динамической памяти не обойти. Ну если Вы, конечно, не против зависания своего МК по переполнению стека
dosikus, в данном случае это не в тему, так как ТС уже знает ассемблер. Объяснить, что такое указатель на функцию тому, кто знает AVR команды ICALL/IJMP - очень легко. Я уже молчу об указателях, так как LD в AVR только с ними и работает. Там для этого специально парные регистры X,Y,Z выделены.
Многие начинали с PIC или AVR, а после перешли на другие МК, в том числе STM32. Для них AVR тоже диагноз?
dosikus писал(а):
А врать то зачем? У микроЕ обширная справка
С очень кратким описанием и почти полным отсутствием примеров. Например сколько есть примеров использования функций uDMA с STM32?
VladislavS писал(а):
а вместо := просто =
Вы забыли упомянуть про равно в условиях и многие другие отличия от бейсика и паскаля, которые можно отнести к разряду "грабли".
ПростоНуб писал(а):
тем более, "таблица указателей на функции" воспринимает с ужасом
Таблица обычно это массив, а что такие массив должно быть известно. Если речь про таблицу прерываний, то в асме она не такая же?
Novice user писал(а):
Проще китайский выучить чем си
Несогласен. Сам по себе язык не сложный. Просто не нужно пытаться понять все и сразу.
Novice user писал(а):
к тому же это дело каждого,умеешь на си-флаг тебе в руки
Для многих моделей МК есть только асм и Си. То есть дело не в флаге, а в отсутствии альтернатив.
Novice user писал(а):
си ну вот не дается и все
В чем сложность?
Novice user писал(а):
Я и книжки покупал,и качал эти квавры,до сих пор не могу понять почему у меня всегда компилируется с многими ошибками
Просто скачав книжки не получится понять почему происходят ошибки при компиляции. Решение простое. Создаете самый простой проект и если он компилируется с ошибками, сначала ищите причину в сети по описанию ошибки и если не поможет, создаете тему на форуме и пишите о проблеме и прикладываете проект. Если простой проект компилируется, постепенно усложняете его добавляя функционал и при ошибке вы будете знать где она произошла, а причину найдете прочитав книжку или поискав ее описание в сети. Вспомните свои первые программы на бейсике. Ни разу не было ошибок, причину которых не могли понять?
Novice user писал(а):
в басик не пишут в операции сравнения два раза равно,три раза равно,палка равно,палка-палка-равно-палка
Это особенности синтаксиса. Довольно быстро можно найти аналоги операторов бейсика и Си. Остальное дело привычки.
Novice user писал(а):
тут еще указатель на указатель таблицы указателей на указатели таблиц функций указателей на функции указателей и прочая дребедень
И как часто с этим приходилось сталкиваться? Применительно к STM32 таблица функций обычно бывает только в прерываниях (обычно можно найти файл от производителя и самостоятельно составлять таблицу нет необходимости). В других местах только если явно ее использовать. Вывод: не понимаете - не используйте, есть другие методы.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения