Сунулся посмотреть, с чего начать, но как-то всё не так и не эдак. После Bascom компилятора, на другие вообще не хочется смотреть.
Есть удобный компилятор? Ну, чтоб на кириллице был в менюшках, удобная компиляция и прошивка в одно нажатие и HELP бы на понятном языке
STM32 лежит, пылиться, ждёт, в я всё компиляторов боюсь.
Для ржавых чайников
Сообщений 1 страница 25 из 25
Поделиться12016-09-28 21:54:22
Поделиться22016-09-28 22:29:24
Одна из самых удобных на мой взгляд СИшных ИДЕ это EmBitz. Можно частично русифицировать (теоретически можно всю, но придется самому переводить остальное на русский).
После баскома может показаться немного непривычной, но это быстро проходит.
Если нужен бейсик, то есть только mikroBasic, но у него с библиотеками все не так хорошо как хотелось бы и придется почти всегда работать непосредственно с регистрами МК. В этом плане писать на Си проще т. к. для него имеются библиотеки функций SPL и HAL от производителя МК и как в баскоме нет необходимости работать с регистрами МК.
В общем если есть немного свободного времени, нужно пробовать. Для начала установить ИДЕ и помигать светодиодом. В этом разделе я выкладывал несколько примеров с их описаниями. (Пример) Простая программа - "мигалка" светодиодом
Если будут вопросы (а по началу их будет много), спрашивайте. Если буду знать, подскажу.
Поделиться32016-09-28 22:52:20
А какое лучше железо купить, плату и к ней программатор и для нищебродов, чтоб было в самый раз?
Там ведь 3.3в. логика, на 5в. нету? Ещё не вникал, точней вникал, но всё никак не могу адаптироваться к 3.3в., по сей день резисторные делители колдую на LCD и флешки 
Поделиться42016-09-28 23:13:38
Если хочется подешевле то вот плата для начала за сто с копейками рублей https://alitems.com/g/1e8d114494d0557aa28116525dc3e8/?ulp=https://ru.aliexpress.com/item/Free-Shipping-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Forarduino/32525208361.html
Если хочется попаять, да поэкспериментировать, то можно поступить как я купив десяток STM32F030F4P6, который стоит 275 рублей (27.5 за штуку) https://alitems.com/g/1e8d114494d0557aa28116525dc3e8/?ulp=https://ru.aliexpress.com/item/Free-shipping-10pcs-STM32F030F4P6-Value-line-ARM-based-32-bit-MCU-STM32F030F4P6/32399890554.html
Программатор он же отладчик в Китае стоит около 130 рублей https://alitems.com/g/1e8d114494d0557aa28116525dc3e8/?ulp=https://ru.aliexpress.com/item/new-ST-Link-V2-stlink-mini-STM8STM32-STLINK-simulator-download-programming-With-Cover/32702948606.html
Но для начала можно обойтись без него, т. к. при производстве в МК прошивается загрузчик и можно шить через USART. Сначала я так и делал, пока не доставили с Китая ST-LINK.
Там ведь 3.3в. логика
Да, питание 3.3в но некоторые выводы толерантны к 5В.
Поделиться62016-09-28 23:38:00
Нужно выбрать первую строку, где написано "ARM GCC Compiler (EmBliz - bare-metal)".
Поделиться82016-09-29 09:28:09
спрашивает: запомнить ваш выбор среды программирования для файлов С и С++
Нет, только сейчас
Нет, только сейчас и всегда спрашивать
ДА, запомнить и применять
ДА, запомнить и применять (для всех типов Си И Си++)
я так понимаю, надо выбрать последнее и будет вам счастье
пробивайте эту тему, может я после Нового года займусь самообразованием: Си, Альтиум, английский
(наивный, я уже 7й год занимаюсь 
Поделиться92016-09-29 10:28:57
Чем все закончилось? Удалось установить?
Русификатор http://tervel.livejournal.com/6468.html
Там написано как установить и включить русский в настройках. Только путь не
C:\Program Files (x86)\CodeBlocks\share\CodeBlocks\
а
C:\Program Files (x86)\EmBitz\share\EmBitz\
Т. к. нужно будет писать программу на Си, то необходимо его изучить...
Для начала довольно хорошая книга "Д. Стефан - C++ для чайников". Ее нужно прочитать сначала и до главы 11 (страницы 116).
Поделиться102016-09-30 02:50:00
Давайте, может насмотрюсь и присуседюся.
Поделиться112016-09-30 09:12:41
я тоже уже скачал и поставил )))
Поделиться122016-09-30 10:51:39
Давайте, может насмотрюсь и присуседюся.
Это лучше один раз увидеть чем сто раз услышать, т. е. для начала нужно установить IDE и попытаться собрать те примеры что есть и конечно же понять как они работают. Для этого потребуются базовые знания языка Си. Нужны самые основы, т. е. функции, циклы, условия, типы переменных, указатели (очень важно, т. к. они применяются почти везде, а ошибиться при работе с ними довольно просто) и т. д.
Внутреннее устройство STM32 поинтересней чем у ATmega. МК всегда стартует с внутреннего RC генератора частота которого 8 МГц (может есть модели с другой частотой, не знаю), даже если к нему подключен кварц. А вот дальше, будет ли тактироваться МК от RC или от кварца и какова будет частота тактирования зависит от программных настроек. Т. е. программно можно выбрать источник тактирования и если нужно, умножить его частоту получив скажем из 8 МГц частоту 48 МГц. Можно "на лету" изменяя коэффициент умножения повышать или понижать частоту в зависимости от того что нужна, высокая производительность или низкое потребление. Более подробно я об этом писал в теме Разгон микроконтроллера
Там довольно простой МК с несложной системной тактирования. Например в STM32F479ZIT6 предусмотрено 4 умножителя частоты для ядра и различных периферийных модулей которых там не мало.
Но и этот МК "отдыхает" по сравнению скажем с STM32F779BIT6. У него тоже 4 умножителя, но посмотрите сколько переключателей выбора источника тактирования для различных периферийных модулей!
Даже при максимальном разрешении монитора вся картинка не поместилась на экран и внизу не показан один умножитель и еще несколько переключателей тактирования.
Еще одна особенность STM32 в том что после старта МК вся периферия не просто выключена, на нее даже не подается тактирование. Видимо сделано для уменьшения потребления тока, ведь речь идет не о единицах мегагерц, а о нескольких десятках и даже сотнях.
Прежде чем работать с периферийным модулем на него нужно подать тактирование. Для этой цели с библиотеке SPL есть несколько функций - RCC_AHBPeriphClockCmd, RCC_APB2PeriphClockCmd и RCC_APB1PeriphClockCmd. Выбор функции зависит от того к какой периферийной шине подключен нужный нам модуль.
Адресное пространство имеет размер 4 ГБ!
И в нем находится все, т. е. flash и оперативная память, а так же все регистры периферии и ядра (но не регистры процессора). Такое устройство дает много интересных возможностей. Например ассемблерная инструкция MOV получает 4-ех байтный адрес откуда копировать данные в регистр процессора, т. е. одна и та же инструкция позволяет считывать данные из памяти и периферии, ведь они в едином адресном пространстве. Нет ограничения как в Mega где при адресации больше 64 КБ нужно применять дополнительные ухищрения.
Еще есть возможность запуска программы из ОЗУ и туда же можно переназначить таблицу векторов прерываний. Применений этому множество. Можно получить код скажем по USART или считать его с флешки и запустить на выполнение. Это может быть скажем, загрузчик. Т. к. он запущен из ОЗУ, то может стереть и переписать всю flash память...
Еще есть модуль DMA (по русски ПДП - прямой доступ к памяти). У его довольно простая задача - копировать из одного области памяти в другую. Но т. к. память и периферия находится в одном адресном пространстве, то модуль может копировать в комбинациях память -> память, периферия -> периферия, память -> периферия или периферия -> память. Нужно лишь указать модулю 4-ех байтный адрес источника и приемника данных и произвести еще кое какие настройки и копирование будет запущено. Основное назначение это разгрузка процессора например при передаче через USART. Можно передать массив байт не отвлекая процессор прерываниями или лишними проверками завершения передачи для загрузки в регистр данных периферийного модуля очередного байта.
Контроллер прерываний в отличие от того что в Mega, поддерживает вложенные прерывания, т. е. во время обработки прерывания оно может быть прервано более приоритетным прерыванием (приоритеты выставляются программно, т. е. нам решать какое их них более приоритетное). Например это позволяет не пропустить короткий импульс на входе Int если в момент его прихода выполняется другое прерывание.
И это далеко не все. Еще долго можно перечислять...
Поделиться132016-09-30 11:13:47
Это лучше один раз увидеть чем сто раз услышать, т. е. для начала нужно установить IDE и попытаться собрать те примеры что есть и конечно же понять как они работают.
Для начала нужно собраться с духом, потом прикупить подопытных кроликов, а уж потом .....
Короче, сутки очень короткие !
Поделиться142016-09-30 22:36:03
Ой... только не газуйте )))) Поиски ST-Link закончились ссорой с женой, пришлось переворачивать всю квартиру (ей), нашла она внутри компьютера, не знай, что её заставило туда заглянуть, наверно женская интуиция, вообщем мне досталось, но я на коне!
Имеется ST-Link stlink V2
И похожее на это, но синее - stm32f103c8 минимальная системная плата
По USB плата определяется как Unknow.
Спасибо за русик!!!! Из ахрхива папку "Locale" переносится в "C:\Program Files\EmBitz\0.42\share\EmBitz", в настройках во вкладке "Вид" появляется "Russian"
Есть одна проблема, выбрал то, что на картинке. Исправлять надо?
Поделиться152016-09-30 23:29:28
И похожее на это, но синее
На плате JTAG разъем программирования/отладки (тот что имеет 20 контактов, расположенных в два ряда). Из них нужно 4 для прошивки через SWD.
Распиновка JTAG.
Распиновка разъема ST-LINK.
Нужно соединить линии 3.3В (если плата будет питаться от компа), GND, SWDIO и SWCLK.
Этого достаточно для прошивки и отладки программы.
По USB плата определяется как Unknow.
В этом МК нет USB загрузчика, но есть USB модуль. Если прошить, скажем это, то будет компом определяться как HID.
Есть одна проблема, выбрал то, что на картинке. Исправлять надо?
Не надо. Это ассоциация файлов с расширениями *.c, *.h, *.cpp и др. с EmBitz. Если нужно то можно аналогичное сделать из проводника винды кликнув в контекстном меню по пункту "Открыть с помощью" и выбрав EmBitz как программу по умолчанию для этих расширений файлов.
Но необходимости в этом нет.
Поделиться162016-10-16 08:25:11
Первый запуск EmBitz, предполагаю, это попытка выбрать какой-то компилятор?
А Вы "STM32CubeMX" ставили ???
У кого "STM32CubeMX" не становится, Setup появляется в процессах на 2 секунды и пропадает ?
Windows 7 x32; x64 - никакие танцы, пляски с бубнами, оркестрами не помогают.
Windows - только установленные + все обновления + java последняя с сайта + STM32CubeMX последняя с сайта - результат нулевой !
ПОМОГИТЕ его поставить !?
Поделиться172016-10-16 09:29:19
А Вы "STM32CubeMX" ставили ???
...
Жду с Aliexpress, на днях должно придти. Может подпись драйвера? В начале загрузки Windows через F8 можно выбрать пункт с загрузкой без проверки подписи драйверов. Вообщем, скоро будем танцевать вместе 
Поделиться182016-10-16 09:44:50
Так это-же программа, графическая оболочка конфигурации STM
Поделиться192016-10-17 04:30:49
У кого "STM32CubeMX" не становится, Setup появляется в процессах на 2 секунды и пропадает ?
Windows 7 x32; x64 - никакие танцы, пляски с бубнами, оркестрами не помогают.
Решение найдено (на полном серьёзе, приснилось), категорически не любит кириллицу в путях к установочному файлу "SetupSTM32CubeMX-4.16.1.exe".
Поделиться202016-10-17 11:37:51
Многие программы не дружат с кириллицей.
Поделиться212016-10-17 20:28:26
вообще-то это обычное требование: только латинница и цифры. Да еще желательно и в корневом каталоге.
Поделиться222017-06-20 11:56:35
Эх... как-же не хочется переходить на многобуквенный многодрыг
Но придётся, опять перечитываю всё заново и кажись Xmega чем-то похожа, разве, что у STM шина данных ЦП раздельна от переферии... блин, ну почему в Си много текста печатать надо (((
Поделиться232017-06-20 12:18:28
почему в Си много текста печатать надо
В Си языковые конструкции короче чем в бейсике...
Поделиться242017-06-20 12:45:58
...конструкции короче чем в бейсике...
Но в Basic`е в голове держу код в сотни строк, а в Си если только структуру программы.
Блин, вот этот синтаксис прям пугает:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
while (1)
{
/* Toggle LED which connected to PC13*/
GPIOC->ODR ^= GPIO_Pin_13;
Поделиться252017-06-20 13:16:37
Можно написать чуть короче.
GPIO_InitTypeDef Port;
Port.GPIO_Pin = GPIO_Pin_13;
Port.GPIO_Mode = GPIO_Mode_Out_PP;
Port.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &Port);
while (1)
{
/* Toggle LED which connected to PC13*/
GPIOC->ODR ^= GPIO_Pin_13;Да и не обязательно набирать весь текст. IDE предлагает варианты автозавершения.

Т. е. после ввода нескольких первых букв, можно выбрать нужный вариант.





