Перейти к содержанию
    

Ulianov_Lenin

Новичок
  • Постов

    2
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. В коде настройки АЦП не вижу строки ADC_ExternalTrigInjectedConvEdgeConfig(ADC1, ADC_ExternalTrigInjecConvEdge_RisingFalling); - именно она с параметром отличным от ADC_ExternalTrigInjecConvEdge_None включает срабатывание АЦП по внешнему триггеру и тогда на F446 АЦП по ADC_ExternalTrigInjecConv_T3_CC2 у меня работает. А вот по ADC_ExternalTrigInjecConv_T1_CC4 - ни в какую. Хотя в дебуге видно что CC4IF меняется, да и прерывание по нему срабатывает, а вот АЦП не запускается. Хотя если сделать TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; то один раз конверсия производилась. Выкручиваться дополнительным таймером не хочется. Кто-нибудь с такой проблемой сталкивался? Кстати да, по ADC_ExternalTrigInjecConv_T1_TRGO АЦП запускается. А оно всегда было по TIM_TRGOSource_Update, сейчас попробовал сделать TIM_TRGOSource_OC4Ref - тоже работает. Эффект как от ADC_ExternalTrigInjecConv_T1_CC4, но через TRGO. Странно что без TRGO не получается с первым таймером, а с третьим - получается.
  2. Товарищи, мне кажется, у меня аналогичная непонятка. SYSCLK на MCO 8мгц, из HSI, судя по коду и регистрам в debug. А код, аналогичный gpio_toggle из примеров от stm32f303 выдаёт на ножке 2мгц, вместо 4мгц. Смотрю осциллографом. Делители AHB,APB1,APB2 = единицы. Компилятор оптимизирует код. Пошаговое исполнение asm инструкций меняет состояние выхода с каждым шагом. STM32F303 я уже изучил неплохо, а вот тут F100 меня сбивает с толку. Инициализация сгенерирована coide, разве что закомментировал вызов SetSysClockTo24(), в которой мк пытается запустить HSE+PLL. Поведение HSI+PLL адекватное, но частота на выходе gpio всёравно в 2 раза ниже ожидаемой. дизассемблер: 26 GPIOC->BRR = GPIO_Pin_9; 0800063a: str r1, [r0, #20] 27 GPIOC->BSRR = GPIO_Pin_9; 0800063c: str r1, [r0, #16] 28 GPIOC->BRR = GPIO_Pin_9; 0800063e: str r1, [r0, #20] 29 GPIOC->BSRR = GPIO_Pin_9; 08000640: str r1, [r0, #16] Коммент к аналогичному коду из документации к F3Discovery: In this example, HCLK is configured at 72 MHz so PE14 and PE15 toggles at 36MHz. To achieve the maximum IO toggling frequency, you have to configure your compiler options for high speed optimization. Мне кажется, автор темы столкнулся с такой-же непоняткой, но ответа я так и не вижу. вот нашел в одной статье: The User Manual for the STM32F0 claims that the the output pins fastest toggle speed is every two clock cycles. Assuming a maximum operation speed of 48MHz, the fastest toggle speed for the GPIO on the STM32f0 is 24 MHZ, which means the highest frequency square wave that can be produced by the GPIO is 12MHz. видимо и нас с F100 касается.
×
×
  • Создать...