Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

stm32f030f4p6 режим захвата

Ср окт 09, 2019 17:53:10

Добрый день, форумчане!
Понадобилась помощь, не получилось настроить режим захвата. Пытался на разных таймерах, но так и не получил прерывания.
Вот на таймере TIM1 (канал 2):
Код:
NVIC_SetPriority(TIM1_CC_IRQn, 1);
NVIC_EnableIRQ(TIM1_CC_IRQn);

TIM1 ->PSC = 48 - 1;
TIM1 ->ARR = 65535 - 1;

TIM1 ->CCMR1 = (TIM1 ->CCMR1 & ~(TIM_CCMR1_CC2S | TIM_CCMR1_IC2F | TIM_CCMR1_IC2PSC)) |
                           TIM_CCMR1_CC2S_0;
                             
TIM1 ->CCER |= TIM_CCER_CC2P | TIM_CCER_CC2E;
TIM1 ->DIER |= TIM_DIER_CC2IE;
TIM1 ->CR1 |= TIM_CR1_CEN;

Микроконтроллер работает на частоте 48МГц. Прерывания по захвату (TIM1_CC_IRQHandler) не получаю. Пин настроен как input floating.
Пните в нужном направлении плиз...
Последний раз редактировалось gruffi Чт окт 10, 2019 11:47:56, всего редактировалось 1 раз.

Re: stm32f030f4p6 режим захвата

Чт окт 10, 2019 07:19:54

я абсолютно не разбираюсь в ARMах, но input floating настораживает.

Re: stm32f030f4p6 режим захвата

Чт окт 10, 2019 07:31:23

я абсолютно не разбираюсь в ARMах, но input floating настораживает.

От мк зависит, на старых STM32F1 так и было, на всех остальных нужно выбирать режим альтернативной функции.

Re: stm32f030f4p6 режим захвата

Чт окт 10, 2019 08:26:11

Пин настроен как input floating. Пните в нужном направлении плиз...

альтернативная функция пина включена?
Пример из сниппетов, работает в реальных проектах:

Re: stm32f030f4p6 режим захвата

Чт окт 10, 2019 11:09:02

Для STM32F030 надо в альтернативный режим ноги перевести.

Re: stm32f030f4p6 режим захвата

Чт окт 10, 2019 11:45:26

Спасибо. Перенастроил, как в сниппете, но все равно прерывания нет...Подключил ко входу просто провод, который замыкаю на землю - по анализатору вижу изменение состояния, но нет захвата. Попробую убрать всю логику и в main сделаю просто настройку и проверю захват.

Добавлено after 32 minutes 55 seconds:
я абсолютно не разбираюсь в ARMах, но input floating настораживает.

От мк зависит, на старых STM32F1 так и было, на всех остальных нужно выбирать режим альтернативной функции.

До этого с захватом работал как раз на STM32F1...

Спасибо за ответы. Отключил всю логику и перекинул настройку в main - сейчас захват происходит.
Ответить