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

О работе с мануалом HAL - ARM, Cortex, STM32 микроконтроллер

28.08.2017, 01:21. Просмотров 3049. Ответов 16
Метки нет (Все метки)

Здравствуйте!
Изучаю STM32F4Dyscovery c HAL, но иногда имею сложности с документацией на функции.
Пользуюсь мануалом по HAL: UM1725 (Dessription of STM32F4 HAL omd LL dryvers) и примерами из STM32CubeF4.

В мануале упомянуты функции, но порой совершенно не расписаны аргументы и возвращаемый результат.
Пример: HAL_I2C_GetState() возвращает поле "HAL: state".
При этом, какие конкретно бывают значения (state) состояния, не указано. Мне приходится искать их непосредственно в HAL-овских файлах: HAL_I2C_STATE_READY, HAL_I2C_STATE_BUSY_TX и т. д.

Поэтому кажется немного неясным, зачем функции в голом виде даются в мануале? Может быть, есть еще какие-то файлы документации, которых я не знаю?

Спасибо
http://www.cyberforum.ru/arm/thread2090607.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2017, 01:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос О работе с мануалом HAL (ARM, Cortex, STM32 микроконтроллер):

Косяк в HAL библиотеке при работе с FLASH
полдня убил на выявления этого косяка стираю страницу и тут же записываю...

HAL, ADC и 5В
Решил завести АЦП на STM32. Почитал HAL, написал функции инициализации и чтения...

STM32F103 и CAN HAL
Здравствуйте уважаемые форумчане! Уже неделю бьюсь над проблемой CAN`а в МК...

STM32CubeMX HAL
Здравствуйте! Нужен совет по работе STM32CubeMX HAL. Если я правильно...

DHT11 HAL
Здравствуйте! в общем настроил могу на опен драин и через резистор повесил на...

16
HotD
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
28.08.2017, 06:21 #2
Для I2C лучше на регистрах...уж больно глючный интерфейс, не стоит добавлять к нему глюки библиотеки. Подсмотреть правильные инициализации можно в SPL, там и ошибок меньше и код прозрачнее.
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
28.08.2017, 19:37 #3
О какой вААще работе может идти речь в контексте калокуба?
Пишите правду- "играюсь с калокубом"...
0
sirktk
0 / 0 / 0
Регистрация: 08.07.2016
Сообщений: 182
28.08.2017, 20:41 #4
Цитата Сообщение от dosykus_2
О какой вААще работе может идти речь в контексте калокуба?
Пишите правду- "играюсь с калокубом"...
Ага, выкрасить и выбросить.
Если сама ST этим занята, то как пользователям следовать вашим советам?
Говорите точнее - НЕ ИСПОЛЬЗОВАТЬ ничего из STM32.
0
BusMostir
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 385
28.08.2017, 20:53 #5
Да пусть пишут на чем хотят. Нам то какое дело до них...
Вообще, судя по публикациям в инете, процент пишущих на CMSIS примерно такой же, как и процент пишущих на ассемблере вместо си.
0
bobjimkyms
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 8
29.08.2017, 00:07 #6
Цитата Сообщение от Hotd
Для I2C лучше на регистрах...уж больно глючный интерфейс, не стоит добавлять к нему глюки библиотеки. Подсмотреть правильные инициализации можно в SPL, там и ошибок меньше и код прозрачнее.
Вот странно, самый популярный интерфейс взаимодействия с внешними устройствами, и в ST Microitistronics не удосужились протестировать его как следует.
Использую STM32F103, и там даже на CMSIS, чтоб заставить y2s правильно работать, нужно учесть множество подводных камней (если почитать errata - например "there is a glitch in I2C analog filter which can couse BUSY flag hanging" - и приходится периодически сбрасывать это состояние при возникновении "ошибок" y2s, которые на самом деле не ошибки, а глюки контроллера). Хоть бери и через bit-banging реализуй :) Вот что в таком случае делать? брать контроллер другого производителя, если хочется с I2C работать?

Цитата Сообщение от sirktk
Ага, выкрасить и выбросить.
Если сама ST этим занята, то как пользователям следовать вашим советам?
Говорите точнее - НЕ ИСПОЛЬЗОВАТЬ ничего из STM32.
Судя по отзывам, библиотека в некоторых местах "сырая", и лучше относится к ней с недоверием и в случае проблем искать проблему не только у себя, а и у ST Microitistronics :)
Кстати, у других производителей контроллеров (Atmel avr, Kinetis, ...) такие же проблемы? Множественные глюки, erratы и т.д.?

Цитата Сообщение от TKymt
Поэтому кажется немного неясным, зачем функции в голом виде даются в мануале? Может быть, есть еще какие-то файлы документации, которых я не знаю?
У меня случилось такое впечатление, что этот документ создавался каким-то автоматическим скриптом на основе заголовочных файлов :). С таким же успехом можно читать и сами исходники HAL. Похоже, лучше всего разбираться на примерах.

Цитата Сообщение от dosykus_2
О какой вААще работе может идти речь в контексте калокуба?
Пишите правду- "играюсь с калокубом"...
А можете описать, какие именно проблемы с ним? Он генерирует неверный код инициализации для какой-то периферии, или просто неудобен для вас?
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
29.08.2017, 00:15 #7
Цитата Сообщение от bobjimkyms
У меня случилось такое впечатление, что этот документ создавался каким-то автоматическим скриптом на основе заголовочных файлов :).
угу, Doxygen называется. Используется всем "прогрессивным" миром, если че.
0
sirktk
0 / 0 / 0
Регистрация: 08.07.2016
Сообщений: 182
29.08.2017, 08:03 #8
Цитата Сообщение от bobjimkyms
Судя по отзывам, библиотека в некоторых местах "сырая", и лучше относится к ней с недоверием и в случае проблем искать проблему не только у себя, а и у ST Microitistronics :)
Кстати, у других производителей контроллеров (Atmel avr, Kinetis, ...) такие же проблемы? Множественные глюки, erratы и т.д.?
Ник то и ни с кем не должен надеяться на отсутствие глюков и проблем.
У всех фирм где-то есть гадости.
И даже работая напрямую с регистрами и строгая на ассемблере, ты можешь влететь.
HAL - не вершина программистской мысли. Нет возражений.
И я лично там тоже натыкался на глупости и правил уже результат Cube.
И что?
ПОКА он мне экономит кучу времени.
Это я говорю не как школьник после Ардуино, а как инженер, начинавший в 1982 году с 580ИК80.
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
29.08.2017, 08:25 #9
Цитата Сообщение от sirktk
ПОКА он мне экономит кучу времени.
Это я говорю не как школьник после Ардуино, а как инженер, начинавший в 1982 году с 580ИК80.
Господин "ЫнжЫнер", признайтесь честно-
за вашим "экономиткучувремени" стоит элементарная день и нежелание изучать документацию...
0
HotD
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
29.08.2017, 08:30 #10
Стоит быть объективным, детальное изучение документации, регистров займет куда больше времени чем по быстрому слепить проект в кубе. Причем отнимет заметно больше времени. Но даст полное понимание что и как крутится. HAL даст быстрый результат, возможно с багами, возможно это будет черным ящиком, но им можно по быстрому проверить периферию. У меня сейчас стоит задача запустить FatFs на F4 через 4-bit SDIO, и как бы мне не был неприятен HAL с его идеологией, но уверен что с ним я в течении пары часов смогу погонять файлы. Полное раскуривание SDIO, со всеми его особенностями займет с недельку.
0
BusMostir
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 385
29.08.2017, 08:44 #11
"Лучше день потратить, зато за час потом долететь" (С)
В том плане, что лучше уж посидеть и написать своё, зато потом им и пользоваться целый год, чем каждый раз корячиться на проблемном Кубе. Тем более, что всю низкоуровневую требуху вы все равно будете оборачивать в более общие представления.
Прослойка HAL немного непонятна по своему назначению. С одной стороны, она немного отрывается от регистров, с другой стороны она все еще остается довольно низкоуровневой. Эта прослойка - явно лишняя.
0
sirktk
0 / 0 / 0
Регистрация: 08.07.2016
Сообщений: 182
29.08.2017, 09:47 #12
И вновь в очередной раз.
Если мы говорим о профессиональном программисте, ну или о Эмбеддере (который в МК еще и железом занят), То абсолютно правы товарищи - "Лучше день потратить, зато за час потом долететь".
Но что делать, если у тебя перед глазами еще работа полумостовых ключей? Отладка схемотехники драйверов? Отладка работы с GSM-модемом? Подключение RFID? Можно перечислять и перечислять.
А еще надо разрабатывать печ. платы, делать техподдержку по работающим проектам и проч.
И таких проектов вовсе не один, и даже не два.
И вот на фоне всего этого я сажусь спокойно "на недельку раскуривать регистры". :-)

Вероятно это неправильно, вероятно в проекте должны быть заняты не 1-2 человека.
Но такова особенность нашей жизни.
0
Iddy_Im
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,406
29.08.2017, 10:43 #13
Если лень, то есть абдурина. Если нужно, чтобы нормально работало, то калокуб здесь — явно лишнее звено.
Вы еще под STM8 калокуб раскорячьте...
0
sirktk
0 / 0 / 0
Регистрация: 08.07.2016
Сообщений: 182
29.08.2017, 10:46 #14
Цитата Сообщение от Iddy_Im
Если лень, .
Вроде всё осветил.
Какая лень?
Трагедия современного разработчика.
Когда за те же деньги делаешь двойной-тройной объем работы.
В сутках 24 часа.
0
Iddy_Im
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,406
29.08.2017, 11:00 #15
Ну так нечего лезть в разработку, если нет желания наращивать кодовую базу. А без кодовой базы никуда же! Нужно разработать что-то с GSM? ОК, рассчитываем на то, что минимум месяц нужно будет потратить на наращивание кодовой базы. Нужно GPS? Ну, здесь попроще - и за пару недель можно разобраться.
Я тупо 1-wire почти месяц мучил, пока не получил рабочий код! И I2C по мануалу поднимал — неделя. С USB вот скоро буду разбираться и с CAN, надеюсь, до конца года разберусь. Правда, дочку все сложней с компа согнать, придется, наверное, для этих целей на работу ходить…
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
29.08.2017, 11:29 #16
Цитата Сообщение от sirktk
И вновь в очередной раз.
Если мы говорим о профессиональном программисте, ну или о Эмбеддере (который в МК еще и железом занят), То абсолютно правы товарищи - "Лучше день потратить, зато за час потом долететь".
Но что делать, если у тебя перед глазами еще работа полумостовых ключей? Отладка схемотехники драйверов? Отладка работы с GSM-модемом? Подключение RFID? Можно перечислять и перечислять.
А еще надо разрабатывать печ. платы, делать техподдержку по работающим проектам и проч.
И таких проектов вовсе не один, и даже не два.
И вот на фоне всего этого я сажусь спокойно "на недельку раскуривать регистры". :-)

Вероятно это неправильно, вероятно в проекте должны быть заняты не 1-2 человека.
Но такова особенность нашей жизни.
Вы сами ответили на свой вопрос - "Вероятно это неправильно, вероятно в проекте должны быть заняты не 1-2 человека."
Все как всегда, надо сделать конфету, но только из г-вна, и чтоб делал студент-дипломник со стажем работы по теме 7 лет. И еще и денег не просил, а за еду.
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
29.08.2017, 11:31 #17
Цитата Сообщение от sirktk
Цитата Сообщение от Iddy_Im
Если лень, .
Вроде всё осветил.
Какая лень?
Трагедия современного разработчика.
Когда за те же деньги делаешь двойной-тройной объем работы.
В сутках 24 часа.
Это трагедия не разработчика, а трагедия руководства. Они все еще думают, что "9 женщин выносят одного ребенка за один месяц". Им никак не вдомек, что есть все же пределы совершенства, против которых не попрешь.
Ну, тут я не советчик, но я бы искал нормальное место, где у руководства с пониманием проблем нет. (для себя я уже нашел, если что).
0
29.08.2017, 11:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2017, 11:31
Привет! Вот еще темы с решениями:

Stm32f100rb HAL
Здравствуйте! Нужно написать небольшую программу для stm32f100rb. В качестве...

HAL+ModBus
Приветствую. Кто нибудь пересаживал фримодбас под хал библиотеки? Как "обошли"...

программный PWM на HAL
Добрый день. Уже второй день бьюсь над реализацией программного ШИМ....

HAL таймер DMA
Что я делаю не так? Настроил DMA так- http://uptoods.ru/ejIdh.jpg uint16_t...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru