Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 HAL EXTI
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб янв 03, 2026 02:03:19

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32 HAL EXTI
СообщениеДобавлено: Ср июн 12, 2019 12:05:19 
Родился

Зарегистрирован: Ср ноя 16, 2016 07:04:33
Сообщений: 9
Откуда: Одесса
Рейтинг сообщения: 0
Господа эксперты! Помогите разобраться!
Использую HAL для небольшого проекта, хочу ловить EXTI, столкнулся с тем, что в различных уроках обработчик прописывают по разному, кто b main.c функцией
Код:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
, кто в stm32f1xx_it.c, причем во втором случае юзеркод мы can воткнуть в два места.
Код:
void EXTI1_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI1_IRQn 0 */

  /* USER CODE END EXTI1_IRQn 0 */
  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
  /* USER CODE BEGIN EXTI1_IRQn 1 */

  /* USER CODE END EXTI1_IRQn 1 */
}

Вопрос: Как лучше то!?
Сам искал ответа в гугле, в хол_мануале, по файлам библиотек не понял :cry:
Кто умеет, плиз, накидайте полезных ссылок или пару строк объяснений как это делают опытные кошатники


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 HAL EXTI
СообщениеДобавлено: Ср июн 12, 2019 14:26:40 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
Vadim1984 писал(а):
Вопрос: Как лучше то!?
Лучше отказаться от лишнего слоя абстракции - HAL и писать на регистрах или с использованием SPL. Это проще и оптимальнее.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 HAL EXTI
СообщениеДобавлено: Ср июн 12, 2019 17:14:18 
Родился

Зарегистрирован: Ср ноя 16, 2016 07:04:33
Сообщений: 9
Откуда: Одесса
Рейтинг сообщения: 0
Согласен. Но сейчас хочу разобратсья с Hal


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 HAL EXTI
СообщениеДобавлено: Сб июн 15, 2019 20:07:05 
Это не хвост, это антенна
Аватар пользователя

Карма: 5
Рейтинг сообщений: 135
Зарегистрирован: Ср май 26, 2010 18:53:57
Сообщений: 1363
Рейтинг сообщения: 1
Мурик писал(а):
или с использованием SPL

А с каких пор SPL не "слоя абстракции" и чем он внезапно стал лучше чем HAL?

Мурик писал(а):
Это проще и оптимальнее.

Это очевидно не проще и очевидно не оптимальнее.

Vadim1984 писал(а):
Вопрос: Как лучше то!?


Обычно можно почитать в HAL мануале + вы можете посмотреть определение этих функций.
Лучше сразу учится читать мануалы и все такое, без этого никуда. А потом уже пофиг будет на чем и что и какие камни программить

_________________
[AMS]


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: STM32 HAL EXTI
СообщениеДобавлено: Вс июн 16, 2019 22:47:02 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
tar писал(а):
чем он внезапно стал лучше чем HAL
Достаточно изучить код библиотек SPL и HAL чтобы понять что в SPL меньше лишних действий. :)

tar писал(а):
Это очевидно не проще и очевидно не оптимальнее.
Не проще в том плане что кроме даташита нужно еще изучать документацию на HAL. Не хочется разбираться с регистрами, есть SPL.
В коде HAL библиотеки много лишнего и про оптимальность говорить не нужно. Это все равно что сказать что оптимально ехать из Москвы в Подмосковье через Камчатку. :facepalm:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 HAL EXTI
СообщениеДобавлено: Пн июн 17, 2019 05:25:05 
Опытный кот
Аватар пользователя

Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 744
Откуда: Караганда, Казахстан
Рейтинг сообщения: 0
Если говорить о проектах, собранных из кубиков (STM32CubeMX), то лучше всего вписать в main между /* USER CODE BEGIN Includes */ и /* USER CODE END Includes */ #include для своего хедера, в котором, среди прочего, прописана программа, допустим, void my_main(void); а между /* USER CODE BEGIN 2 */ и /* USER CODE END 2 */ вызов этой программы. Хедер и программу поместить в папки inc и src кубического проекта, после чего забыть обо всём, нагенерированном Кубиком и писать свой код только в этих .h и .c файлах. Достоинства: не надо ковыряться и размещать свой код во множестве нагенерированных файлов, в любой момент можно выкинуть этот проект и собрать из кубиков новый, после чего вписав в кубический main те самые две строчки спокойно подключить всё своё наработанное к новому проекту.

А по существу заданного вопроса, проще всего вписать в тот самый свой .c-файл, в котором, собственно, и пишем свою программу, функцию
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
в которой и обрабатывать EXTI.

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 HAL EXTI
СообщениеДобавлено: Пн июн 17, 2019 11:58:04 
Это не хвост, это антенна
Аватар пользователя

Карма: 5
Рейтинг сообщений: 135
Зарегистрирован: Ср май 26, 2010 18:53:57
Сообщений: 1363
Рейтинг сообщения: 1
Мурик писал(а):
Достаточно изучить код библиотек SPL и HAL чтобы понять что в SPL меньше лишних действий.


Отчасти разве что. По сути они почти одинаковые. HAL просто написан более универсально.

Мурик писал(а):
Не проще в том плане что кроме даташита нужно еще изучать документацию на HAL


А что документацию на SPL изучать уже не надо? боже что ты несешь.

Мурик писал(а):
Не хочется разбираться с регистрами, есть SPL.


С SPL видимо все разбираются с детства, еще со времен когда учатся шнурки завязывать. :facepalm:

Мурик писал(а):
В коде HAL библиотеки много лишнего и про оптимальность говорить не нужно. Это все равно что сказать что оптимально ехать из Москвы в Подмосковье через
Камчатку


Оптимальнее с точки зрения чего? времени? да хрен там. Я проще накидаю в кубе настройки всей периферии чем буду сидеть и колупать регистры.
Проще? Опять же проще указать какие пины как работать должны, указать нужную периферию, мышкой наклацать нужные делители и наглядно видеть результат по частоте.

Итого: не оптимальнее с точки зрения времени и не проще.

Я могу понять, что бы топить за чистый цимис, ладно, возбуждает тебя дротить регистры, и говорить "какой я молодец, вот тут я использую битмаппинг портов и экономлю по 2 операции" это еще можно понять. Но что бы топить за SPL вместо HAL это чем надо думать? HAL поддерживается и развивается, кучу продуктов ST выпускается из расчета автоматизации разработки. Явно перспективнее переложить автоматизацию на плечи разработчика камня и заниматься логикой. Обновления HAL выходят постоянно, дыри и проблемы закрываются и он уже давно работает хорошо.

Если кто то привык пользоваться определенными инструментами это еще не значит что объективно их нужно советовать.

_________________
[AMS]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 HAL EXTI
СообщениеДобавлено: Пн июн 17, 2019 12:15:40 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
tar писал(а):
Оптимальнее с точки зрения чего? времени?
Представьте себе.
Я раньше немного использовал куб и не раз сталкивался с багами и отличиями в зависимости от версии. Было и такое что генерированный проект переставал компилироваться после обновления куба приходилось создавать проект с нуля, все настраивать и переносить код с предыдущего проекта тратя на это время и силы. Так что да, использование SPL сэкономит время. Я в этом на практике убедился.

А еще при необходимости изменить часть кода в файлах где не предусмотрена возможность это сделать (например требовалось внести некоторые изменения в дескрипторы USB) эти изменения затирались при очередном генерировании проекта.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 HAL EXTI
СообщениеДобавлено: Пн июн 17, 2019 16:26:36 
Опытный кот
Аватар пользователя

Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42
Сообщений: 744
Откуда: Караганда, Казахстан
Рейтинг сообщения: 0
Мурик писал(а):
Было и такое что генерированный проект переставал компилироваться после обновления куба приходилось создавать проект с нуля, все настраивать и переносить код с предыдущего проекта тратя на это время и силы.
И не один раз. И мой подход (две строчки в кубическом main(), а все остальное - в своих .c и .h) позволяет сократить перенос кода с предыдущего проекта до минимума. Остается чисто кубическая работа - настроить интерфейсы, назначить ножки и т.п., т.е. то самое, для чего это Кубик, в общем-то, и предназначен.

То же самое весьма полезно и при переходе на другой камень. Я клепаю один проект, начал его на STM32F103VET6, потом без проблем перенес его на STM32F407VET6. Модифицировать текуший проект Кубик не дал, так я, по-простому, нащелкал новый, подключил к нему свои исходники, которые были в проекте с F103, и все. Ну, не считая того, что у 407-го ножками GPIO манипулируют слегка по-другому (часть регистров другие), пришлось подправить. В итоге, я спортил проект со 103-го на 407-й меньше, чем за полдня.

_________________
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y