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

Степанов Павел

Members
  • Постов

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

  • Посещение

Электроника

  • Стаж в электронике
    Не связан с электроникой

Достижения Степанов Павел

Новичок

Новичок (1/14)

  • Неделя на форуме

Последние значки

0

Репутация

  1. Попробовал тщательней почистить плату и возможно инициализация тактирования заработала (сейчас разбираюсь/проверяю) . Только при инициализации тактирования диод должен начать мигать быстрее? (Для задержки используется простой цикл с счетчиком.)
  2. Доброго время суток! Начал знакомство с stm32 с примеров с сайта: https://count-zero.ru/2018/stm32_start/ Синий диод замигал. На самом простейшем уровне плата заработала. Но попытки чуть-чуть усложнить программу или взять любые готовые примеры оказываются неудачными. Насколько понимаю не удается настроить тактирования платы на 72МГц. Вот к примеру попытка инициализации в одном из примеров (функция ClockInit вызывается самой первой): void ClockInit( void) { ErrorStatus HSEStartUpStatus; RCC_DeInit(); RCC_HSEConfig( RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp(); if ( HSEStartUpStatus == SUCCESS ) { ...; } } Судя по всему возвращается не SUCCESS (проверял через вставки досрочных return'ов). Похоже, что в функции: /** * @brief Waits for HSE start-up. * @param None * @retval An ErrorStatus enumuration value: * - SUCCESS: HSE oscillator is stable and ready to use * - ERROR: HSE oscillator not yet ready */ ErrorStatus RCC_WaitForHSEStartUp( void) { __IO uint32_t StartUpCounter = 0; ErrorStatus status = ERROR; FlagStatus HSEStatus = RESET; /* Wait till HSE is ready and if Time out is reached exit */ do { HSEStatus = RCC_GetFlagStatus(RCC_FLAG_HSERDY); StartUpCounter++; } while((StartUpCounter != HSE_STARTUP_TIMEOUT) && (HSEStatus == RESET)); //return (SUCCESS); if ( RCC_GetFlagStatus(RCC_FLAG_HSERDY) != RESET ) { status = SUCCESS; } else { status = ERROR; } return (status); } в цикле ожидания не наступает условие (HSEStatus == Reset). Пробовал увеличить время ожидания в 5/50/500 раз (500*HSE_STARTUP_TIMEOUT). Но не помогает. Это плата не работает, или это не правильная инициализация тактирования?
×
×
  • Создать...