|
95 / 15 / 3
Регистрация: 09.07.2009
Сообщений: 886
|
|
Работа с Keil начинающего освоение программирования STM3208.06.2025, 21:24. Показов 11518. Ответов 164
Метки нет (Все метки)
Здравствуйте!
Пытаюсь освоить программирование STM32 по книге "Освоение STM32 самостоятельно". У меня установлена версия uVision 5.38.0.0. В книге на рис. 52 и 53 показано окно с заголовком "Contex M Target Driver Setup". Подскажите, пожалуйста, через какие пункты меню Keil можно вызвать это окно. Прикрепил скриншот проекта и интерфейса Keil
0
|
|
| 08.06.2025, 21:24 | |
|
Ответы с готовыми решениями:
164
Книги "Освоение STM32 самостоятельно. Практическое руководство" без #, c #1 и #2 в названии Сравнить программные продукты Keil uVision 5.11.2.0 и Keil ARM 5.29.0.0 STM32 + KEIL. Найти смещение функции в прошивке |
|
54 / 52 / 2
Регистрация: 23.01.2019
Сообщений: 385
|
|
| 18.06.2025, 12:34 | |
|
Не вот чтобы учусь. Скорее пока "только посмотреть"
0
|
|
|
|
|
| 18.06.2025, 22:46 | |
|
Провода, ст-линки, софт, книги.... фить, ерунда какая. То ли еще будет..
Есть проблемы поинтереснее: 4 устройства: A, B, C, D, где A,B - это приложения на ПК, а C,D - реальные устройства (железки), причем устройство D - это STM32F4x. Задача: обмен данными между всеми ими по некоторому протоколу.Что происходит: программа А успешно обменивается с приложением В. Так же, А успешно обменивается с реальным устройством С. Приложение В, в свою очередь, так же общается с С и D. Но(!) приложение А не может общаться с D (прием неверных данных на D).Каламбур: объекты A-B-C спокойно разговаривают между собой. B-C прекрасно беседуют с D. A и D не дружат!Вот те раз..
0
|
|
|
Нарушитель
|
||
| 18.06.2025, 23:08 | ||
|
// а вот вантузоиды мучаются, да…
0
|
||
|
|
|
| 18.06.2025, 23:11 | |
|
Казалось бы, какое это имеет отношение к вопросу? А, просто вы... пендриться.
Добавлено через 1 минуту wizard41, снифффером смотрите, в логах. Если одно не работает, а другое работает, то разница должна быть видна на том или ином уровне.
0
|
|
|
|
||
| 18.06.2025, 23:16 | ||
|
Rius, поздно выяснилось. Действительно, завтра сяду анализатором на D, посмотреть посылки.. На всякий случай.
Добавлено через 2 минуты
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||
| 18.06.2025, 23:26 | |||
|
создавайте под свой вопрос свою тему
0
|
|||
|
95 / 15 / 3
Регистрация: 09.07.2009
Сообщений: 886
|
|||||||||||
| 19.06.2025, 18:02 [ТС] | |||||||||||
|
Программа из книги скомпилировалась, прошилась, заработала:
1. Заголовочный файл в кавычках вроде бы должен быть в директории с исходным кодом. Но у меня этого файла в директории проекта нет. Как Keil узнает, где он находится, и почему этот файл в кавычках? 2. В большинстве ресурсов по программированию АЦП используется STMCubeMX. Я хотел бы просто использовать HAL для STM32F103. Попробовал вставить в проект основной заголовочный файл
0
|
|||||||||||
|
|
|||
| 19.06.2025, 18:07 | |||
<> в каталогах компилятора, в "" не у компилятора, а у вас. Условно.Во, include paths:
0
|
|||
|
|
||
| 19.06.2025, 18:16 | ||
|
tumanovalex, "stm32f1xx_hal.h" находится в папке Driver/CMSIS, которые лежат в папке проекта. Поэтому имя файла взято в кавычки.
Но для этого в настройках данного проекта должны быть включены пути поиска:
0
|
||
|
Нарушитель
|
||||||||
| 20.06.2025, 09:21 | ||||||||
volatile? Каждая из этих строчек фактически будет выполняться: компилятор не сможет эту жесть оптимизировать на один вызов!Ну и непонятно, зачем "обнулять" то, что и так равно нулю. Можно ведь сразу было написать:
0
|
||||||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
||||||||||||
| 20.06.2025, 09:52 | ||||||||||||
|
Да и вообще, какой смысл писать целую функцию для инициализации одного-единственного PC13? Проще сразу в RCC->APBxENR разрешить тактирование всех портов, AFIO и, возможно, еще чего-то нужного. Все равно ж рано или поздно задействуете. Собственно, для макетных целей туда, насколько я слышал, можно вообще 0xFFFF записать - разрешить вообще все. Это ж макетка, а не батарейное устройство, миллиамперы можно не экономить.
-I. В IDE эти флаги наверняка берутся из каких-нибудь настроек. Собственно флаг -I говорит "А еще .h файлы могут лежать вот там"Другое дело, что в коде ТС я вижу реализацию функции SetSysClockTo72(), но не вижу ее вызова.
0
|
||||||||||||
|
|
|
| 20.06.2025, 10:29 | |
|
Cube - средство быстрого прототипирования, но тупым красноглазикам этого не дано понять.
Прамая запись чисел в регистр тем плоха, что конкрентный результат без даташита не ясен. Макросы лучше тем, что видны названия значений, но всё равно плохи тем, что позволяют писать чушь, типа битов АЦП в регистр UART, компилятор это никак не контролирует. Каждый кулик хвалит своё болото.
0
|
|
|
Нарушитель
|
||
| 20.06.2025, 11:00 | ||
|
0
|
||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
||||||||||||||
| 20.06.2025, 11:24 | ||||||||||||||
int some_var = 123; в этом смысле ничуть не лучше записи GPIOC-> CRH |= GPIO_CRH_MODE13_1;. Они обе - запись какого-то непонятного числа. Почему выбрано именно такое число, без внешней документации непонятно.
0
|
||||||||||||||
|
95 / 15 / 3
Регистрация: 09.07.2009
Сообщений: 886
|
|
| 20.06.2025, 12:17 [ТС] | |
|
Приведенный код я брал из книги "Освоение STM32 самостоятельно", просто нужно было с чего-то начать. На нем я потренировался компилировать и загружать прошивку в устройство, поскольку делал это первый раз в жизни. А попросили меня друзья сделать АЦП на STM32, которое должно получать аналоговый сигнал, сравнивать с минимальным и максимальным значением и устанавливать 0 или 1 на определенных контактах в зависимости от результатов сравнения. Как я понимаю, мне нужно запрограммировать АЦП в режиме Analog Watchdog. Но для того, чтобы сделать программу, мне еще нужно очень много понять и многому научиться. Надеюсь на вашу помощь.
0
|
|
| 20.06.2025, 12:17 | |
|
C++ в Keil + STM32 CMSIS STM32 проект в Keil - это просто Stm32 и Keil STM32 и Keil v5 (5.14) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|