реклама на сайте
подробности

 
 
> Проблемы с инициализацией STM32F103VE
A-10
сообщение Sep 30 2010, 17:39
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 11-06-09
Из: Санкт-Петербург
Пользователь №: 50 207



Всем привет. Приобрел недавно отладочную плату на STM32F103VE, решил начать с самого простого, инициализации мк и включения единственного светодиода.
Модифицировал какой-то простейший кейловский пример, там почему-то даже не было инициализации системы тактирования, и направления портов GPIO (мб подразумевалась настройка через конфиг, хз).
В общем по мануалу и insider's guide настроил все клоки, поставил 5-ый пин порта Б на выход. Нашел косяк, и не один, в процессе отладки, оказалось, что в reset регистры надо записывать 0 после старта, в мануале об этом ни слова, хорошо что в insider's guide было пояснение.
Но СД все равно не горит. Не могу понять в чем дело..

Код выглядит так:

Код
/*----------------------------------------------------------------------------
*  Name:    Blinky.c
*  Purpose: LED Flasher for STM32
*---------------------------------------------------------------------------*/
#include <stm32f10x.h>
/*----------------------------------------------------------------------------
   Function prototypes
*---------------------------------------------------------------------------*/
void clockstart(void);
/*----------------------------------------------------------------------------
   Wait function - delay flashing
*---------------------------------------------------------------------------*/
void wait (void) {
  unsigned int countDown = 300000;                  // arbitrary int to count down

  while(countDown--);                                       // count down
}

/*----------------------------------------------------------------------------
   MAIN function
*---------------------------------------------------------------------------*/

int main (void) {
    clockstart();                                                // init start sequence
    GPIOB -> CRL |= (GPIO_CRL_MODE5_0 | GPIO_CRL_MODE5_1);
                                                                    // set pin5 of PORTB to output mode, max speed 50 MHz
    GPIOB -> CRL &= 0xFF3FFFFF;                        // general purpose output push-pull

  while (1) {                                                   // loop forever
    GPIOB -> BSRR |= GPIO_BSRR_BS5;            // set pin5 to 1
    wait();                                                         // delay flashing
    GPIOB -> BSRR |= GPIO_BSRR_BR5;            // set pin5 off
    wait();
  }
}


Код
#include <stm32f10x.h>

void clockstart(void) {
//    while (!(RCC -> CR & RCC_CR_HSIRDY))                      // Wait until internal HSI will be ready
//    {
//;
//    }

    RCC -> CR |= RCC_CR_HSEON;                                // Switch to HSE oscillator
    while (!(RCC -> CR & RCC_CR_HSERDY))                      // Wait until external HSE will be ready
    {
;
    }

    RCC -> CFGR |= RCC_CFGR_PLLSRC;                        // Set PLL source clock as HSE
    RCC -> CFGR |= (RCC_CFGR_PLLMULL_0 | RCC_CFGR_PLLMULL_1 | RCC_CFGR_PLLMULL_2);
                                                                                // Set PLL multiplier x9 (72 MHz)
    RCC -> CFGR |= RCC_CFGR_SW_1;                            // PLL selected as system clock
    RCC -> CR |= RCC_CR_PLLON;                                    // Start PLL
    while (!(RCC -> CR & RCC_CR_PLLRDY))                      // Wait until PLL is locked
    {
;
    }

    RCC -> CFGR |= RCC_CFGR_PPRE1_DIV2;                    // HCLK divided by 2 (36MHz)
    RCC -> APB2ENR |= RCC_APB2ENR_IOPBEN;                // IO port B clock enable
    RCC -> APB2RSTR = 0x00000000;
    RCC -> APB1RSTR = 0x00000000;                            // release peripherals from reset    
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 22:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016