Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74

EmBitz и Blue Pill

16.07.2025, 17:36. Показов 5094. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Остановился на IDE EmBitz, который создан на основе знакомого мне CodeBlocks. Сделал проект мигания индикатором на основе кодов из темы. С помощью Build target проверил проект - ошибок не обнаружено. Затем c помощью Flash Target и ST-Link записал проект на плату. Переставил Boot0 на 0 и сделал сброс. Никакого мигания. Проект прикрепил. Помогите, пожалуйста, разобраться.
Вложения
Тип файла: 7z 01_bzC6_CMSIS.7z (122.1 Кб, 26 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.07.2025, 17:36
Ответы с готовыми решениями:

Отладка платы STM32F103C8T6 (Blue Pill) через st-link/v2
Здравствуйте! Подскажите как отлаживать STM32F103C8T6 используя оригинальный программатор...

Запустить экран на ILI9341 с платой Blue Pill
Всем здравствуйте и с наступающим. Приобрел дисплей на Али, пробовал его запустить разными...

STM32 Blue Pill, не могу заставить таймер заткнуться, пока нажата кнопка
Здравствуйте, уважаемые форумчане! Помогите пожалуйста разобраться с проблемой, не пойму, что не...

63
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
19.07.2025, 20:21  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от locm Посмотреть сообщение
В C6 работать не будет т. к. проект для СB (не путать с С8), а у МК есть отличия
Вы меня не так поняли. Я проверял для отдельных проектов для C8 и C6. Об отличиях этих МК я знаю.
0
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
23.07.2025, 17:11  [ТС]
Попробовал с помощью HAL запрограммировать АЦП на 1 канал. Проект компилируется без ошибок. а при отладке возникает ошибка при использовании функции:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static void MX_USART1_UART_Init(void)
{
  huart1.Instance = USART1;
  huart1.Init.BaudRate = 9600;
  huart1.Init.WordLength = UART_WORDLENGTH_8B;
  huart1.Init.StopBits = UART_STOPBITS_1;
  huart1.Init.Parity = UART_PARITY_NONE;
  huart1.Init.Mode = UART_MODE_TX_RX;
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  if (HAL_UART_Init(&huart1) != HAL_OK)
  {
    Error_Handler();
  }
}
В директории HAL проекта есть файлы stm32f1xx_hal_uart (c,h) и stm32f1xx_hal_usart (c,h) и эти файлы включены в проект. Что нужно сделать, чтобы проект скомпилировался? Помогите, пожалуйста. Проект прикрепил.
Вложения
Тип файла: 7z 01_stmC8hal_adc.7z (1.76 Мб, 11 просмотров)
0
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,959
Записей в блоге: 14
23.07.2025, 17:16
Цитата Сообщение от Starostin Посмотреть сообщение
отладке возникает ошибка при использовании функции
Какая?
0
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
23.07.2025, 17:25  [ТС]
Делал дебуг в режиме DebugRAM. При перемещении по строчкам кода (не внутрь функций) на вызове этой функции произошел скачок на ее определение и выделилось красным. Дальше я уже не отлаживал, поскольку на других функциях
C
1
2
3
4
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_ADC1_Init();
такого скачка не было. Я еще плохо освоился с EmBitz и с отладкой в нем, вот и прошу помощи.
0
Эксперт по электронике
7214 / 3393 / 347
Регистрация: 28.10.2011
Сообщений: 13,336
Записей в блоге: 7
23.07.2025, 17:31
Цитата Сообщение от Starostin Посмотреть сообщение
Проект компилируется без ошибок. а при отладке возникает ошибка при использовании функции:
Какая ошибка?
Я вижу что АЦП конфигурируется с ошибкой в строках файла stm32f1xx_hal_adc.c
C
1
2
3
4
5
6
7
8
9
10
11
12
   else
    {
      /* Update ADC state machine to error */
      ADC_STATE_CLR_SET(hadc->State,
                        HAL_ADC_STATE_BUSY_INTERNAL,
                        HAL_ADC_STATE_ERROR_INTERNAL);
 
      /* Set ADC error code to ADC IP internal error */
      SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
 
      tmp_hal_status = HAL_ERROR;
    }
Также в проекте нет функции HAL_ADC_MspInit() и вместо нее используется заглушка. Это может быть причиной ошибки.
0
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
23.07.2025, 18:41  [ТС]
Я в проекте для EmBitz использовал файл main.c (без комментариев) из проекта Keil, созданного с использованием CubeMX. В проекте Keil все работает: в Putty вижу правильно измеренные значения. Посмотрел проект Keil - там для этой функции тоже нет реализации. Добавил в проект stm32f1xx_hal_msp.c - при отладке передвигаюсь по строкам нормально, скачков нет.
Но после прошивки в режиме релиза все равно в Putty не вижу измеренных данных
Цитата Сообщение от locm Посмотреть сообщение
Я вижу что АЦП конфигурируется с ошибкой в строках файла stm32f1xx_hal_adc.c
А как Вы это увидели? Научите, пожалуйста.
0
Эксперт по электронике
7214 / 3393 / 347
Регистрация: 28.10.2011
Сообщений: 13,336
Записей в блоге: 7
23.07.2025, 19:05
Цитата Сообщение от Starostin Посмотреть сообщение
А как Вы это увидели? Научите, пожалуйста.
Запустил выполнение и после остановил (раньше писал как это сделать).
Выполнение оказалось в функции Error_Handler() в main.c.
Дальше из меню отладки открыл окно "Call stack" и посмотрел историю вызовов. В функцию Error_Handler() был производен переход из функции MX_ADC1_Init(). Это 95 строка файла main.c.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static void MX_ADC1_Init(void)
{
  ADC_ChannelConfTypeDef sConfig = {0};
  hadc1.Instance = ADC1;
  hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
  hadc1.Init.ContinuousConvMode = DISABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc1.Init.NbrOfConversion = 1;
  if (HAL_ADC_Init(&hadc1) != HAL_OK)
  {
    Error_Handler(); // Эта строка.
  }
  sConfig.Channel = ADC_CHANNEL_0;
  sConfig.Rank = ADC_REGULAR_RANK_1;
  sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  {
    Error_Handler();
  }
}
После пошагово выполнил HAL_ADC_Init() и посмотрел где ошибка.
0
95 / 15 / 3
Регистрация: 09.07.2009
Сообщений: 886
24.07.2025, 09:53
Цитата Сообщение от Starostin Посмотреть сообщение
В проекте Keil все работает: в Putty вижу правильно измеренные значения
Можете выложить этот рабочий проект?
0
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
24.07.2025, 10:15  [ТС]
Цитата Сообщение от tumanovalex Посмотреть сообщение
Можете выложить этот рабочий проект?
Пожалуйста
Вложения
Тип файла: 7z stmC8_ADC.7z (759.6 Кб, 4 просмотров)
1
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
24.07.2025, 10:48  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Запустил выполнение и после остановил
Спасибо большое за подробные объяснения. После добавления файла stm32f1xx_hal_msp.c в стеке вызовов Error_Handler исчезла. В Putty на экране зеленый индикатор стал перемещаться вниз, но почему-то числа не выводятся. В проекте я заменил файл main.c без комментариев на файл из проекта Keil. Помогите, пожалуйста, разобраться, почему числа выводятся в проекте Keil и не выводятся в проекте EmBitz. Проект Keil я разместил по просьбе tumanovalex, проект с stm32f1xx_hal_msp.c прикрепил.
Вложения
Тип файла: 7z 02_stmC8hal_adc.7z (1.79 Мб, 7 просмотров)
0
Эксперт по электронике
7214 / 3393 / 347
Регистрация: 28.10.2011
Сообщений: 13,336
Записей в блоге: 7
24.07.2025, 12:53
Цитата Сообщение от Starostin Посмотреть сообщение
В Putty на экране зеленый индикатор стал перемещаться вниз, но почему-то числа не выводятся.
То есть пустые строки печатает?
Программная работа с плавающей точкой затратна по ресурсам и по умолчанию она отключена для printf() и scanf().
Чтобы включить нужно открыть окно из меню Project -> Build options. Далее в левой части окна выберите цель сборки или проект чтобы изменить в всех целях и перейдите на вкладку Linker setting -> Linker flag в списке выберите Library selection и там включите плавающую точку для printf. Это увеличит размер прошивки и отладка в ОЗУ станет невозможной т. к. размер прошивки превысит 20 КБ. Такова цена за плавающую точку.
1
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
24.07.2025, 13:27  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Чтобы включить нужно открыть окно из меню Project -> Build options
Спасибо большое, заработало. До включения библиотеки размер файла hex EmBitz для релиза был 26 кб, а Keil - 34 кб. После включения библиотеки размер файла hex для EmBitz стал 56 кб. Получается, что Keil создает файлы прошивки значительно меньшего размера.

Добавлено через 5 минут
Забыл спросить. А в Keil нет режимов релиз и отладки? По умолчанию создается Release и отладочная прошивка создается только при запуске Debug-Start?
0
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,959
Записей в блоге: 14
24.07.2025, 14:30
Печать плавающей точки можно взять с гитхаба, там есть всякие tinyprintf с минимальным использованием памяти.
https://github.com/mpaland/printf

А в Keil нет режимов релиз и отладки?
В свойства проекта на вкладке Output можно включить отладочную инфу или выключить.

По умолчанию создается Release и отладочная прошивка создается только при запуске Debug-Start?
Нет особого смысла создавать отладочную прошивку и не отлаживать её. Ещё меньше смысла отлаживать релизную, так как в ней не будет отладочной инфы.
1
Эксперт по электронике
7214 / 3393 / 347
Регистрация: 28.10.2011
Сообщений: 13,336
Записей в блоге: 7
24.07.2025, 15:02
Цитата Сообщение от Starostin Посмотреть сообщение
После включения библиотеки размер файла hex для EmBitz стал 56 кб.
Размер hex-файла?
Размер прошивки релиза 20724 байт, но может незначительно отличатся в зависимости от настроек оптимизации и других.
Цитата Сообщение от Starostin Посмотреть сообщение
Получается, что Keil создает файлы прошивки значительно меньшего размера.
Не совсем так. Отличие в библиотеках печати с плавающей точкой. Без нех результат мог быть совсем другим.

Добавил в проект библиотеку о которой написал Rius. Размер релизной прошивки уменьшился до 8340 байт (23.5 КБ размер hex файла).
Вложения
Тип файла: 7z stmC8hal_adc.7z (457.2 Кб, 15 просмотров)
0
1519 / 534 / 78
Регистрация: 22.09.2023
Сообщений: 1,698
24.07.2025, 15:18
Цитата Сообщение от Rius Посмотреть сообщение
Ещё меньше смысла отлаживать релизную, так как в ней не будет отладочной инфы.
Учитывая, что отладочная информация содержится в объектном файле, но не попадает из него прошивку - еще меньше смысла отлаживать одну (debug) а прошивать другую (release) программу. Всегда отлаживаю только то, что будет реально прошиваться и работать у заказчика. Заодно видно, что компилятор натворил именно со всеми включенными оптимизациями.
1
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
24.07.2025, 15:30  [ТС]
Я до вашего сообщения сделал проект с использованием библиотеки из сообщения Rius. Только я в main.c заменил <stdio.h> на "printf.h". В результате получился hex 35 кб. А с Вашим проектом Putty опять не выводит числа.

Добавлено через 2 минуты
Цитата Сообщение от Rius Посмотреть сообщение
Печать плавающей точки можно взять с гитхаба, там есть всякие tinyprintf с минимальным использованием памяти
Спасибо большое, использование этой библиотеки уменьшило размер hex файла.
0
Эксперт по электронике
7214 / 3393 / 347
Регистрация: 28.10.2011
Сообщений: 13,336
Записей в блоге: 7
24.07.2025, 16:23
Цитата Сообщение от Starostin Посмотреть сообщение
Только я в main.c заменил <stdio.h> на "printf.h".
Да, это я забыл сделать.
0
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
24.07.2025, 17:37  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Да, это я забыл сделать.
Спасибо Вам большое за помощь в освоении EmBitz! Как я понял, Вы реально используете эту программу и знаете ее особенности. Знатоков этой программы, наверное, немного, а программа мне понравилась, хотя мне еще с ней разбираться и разбираться.
0
Эксперт .NET
 Аватар для Rius
13848 / 7890 / 1707
Регистрация: 25.05.2015
Сообщений: 23,959
Записей в блоге: 14
24.07.2025, 17:43
Цитата Сообщение от Starostin Посмотреть сообщение
Знатоков этой программы, наверное, немного
Увы, данный проект закрыт его автором.
Не хватало времени и сил, не было помощи от несформировавшегося сообщества, а ST выкатили свою IDE, на базе Eclipse.
0
0 / 1 / 0
Регистрация: 16.09.2022
Сообщений: 74
24.07.2025, 17:51  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Увы, разработка данного проекта закрыта автором.
Жалко. Значит версия 2.62 - последняя? А где он об этом сообщал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.07.2025, 17:51

Адаптер USB-Serial с 3 UART портами на STM32 Blue Pill
Всем доброго времени суток, хотел поделиться своим проектом 3-x портового USB-Serial адаптера...

[STM32F103C8T6, он-же Blue Pill] - SPI1, CMSIS - пример
Доброго времени суток, уважаемые участники форума! Подскажите пожалуйста, есть ли где готовый...

Настройка IAR Embedded Workbench for ARM для работы с симулятором и blue pill
Здравствуйте! Установил триальную версию IAR Embedded Workbench for ARM. Создал проект с файлом...

BLUE PILL не могу запустить в ПРОТЕУСЕ
Пытаюсь освоить STM32, в частности Blue Pill. Привык сначала что либо делать в Протеусе. Скачал...

Программирование Blue Pill с помощью CMSIS (начинающий)
Хотелось бы самому научиться правильно работать с регистрами без использования готового кода в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru