Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
STM32 generic board
Evo jedan fin i poucan primer kako baratati "low-level" registrima unutar STM32F103, bez upotrebe perifernih biblioteka ili CubeMX, koristi se samo osnovni CMSIS koji obezbeduje definiciju svih registra i dodaje start_up code.

Primer samo brzo togluje LED na plocici (PC13), brzinom oko 17.5MHz i zanimljivo je to posmatrati preko osciloskopa gde se vidi da je baratanje portom maksimalnom brzinom od 36MHz i da je while() struktura dosta sporija (oko 4.5MHz) pa se vide "pauze".

Program sam pokrenuo preko Keil uVision 5, ali posto je potpuno nezavistan od drugih biblioteka lako ga je portovati na GCC okruzenje, to planiram u narednim danima, trebam napisati make/linker skriptu ...

PHP Code:
/*
Bare minimum primer za blink LED za BluePill plocicu sa STM32F103C8
Koristi se samo osnovni CMSIS core bez dodatnih drajvera
Primer je pokrenut kroz Keil uVision 5
*/

#include "stm32f10x.h"

int main(void) {
    
    
//-------------------------------------------------------
    //----------- Konfiguracija za Clock --------------------
    //-------------------------------------------------------
    
    //prilikom reseta default je interni RC oscilator, da bi radio sa externim 
    //kristalom mora da se enabluje HSE (High Speed External) u RCC (Reset and Clock Control)
    
RCC->CR |= RCC_CR_HSEON//External High Speed clock enable
    
    //posto treba vremena da se stabilizuje clock, cekamo RCC_CR_HSERDY flag
    
while (!(RCC->CR RCC_CR_HSERDY )) {
        ; 
//cekaj tu
    
}
    
    
//aktiviramo PLL za HSE
    
RCC->CR |= RCC_CR_PLLON;

    
//postavljamo da je HSE izvor cloka za PLL
    
RCC->CFGR |= RCC_CFGR_PLLSRC_HSE;
    
    
//stavljamo x9 za PLL (8MHz * 9 = 72MHz) u registar RCC_CFGR
    
RCC->CFGR |= RCC_CFGR_PLLMULL9;
        
    
//cekamo PLL da se stabilizuje
    
while (!(RCC->CFGR RCC_CIR_PLLRDYC )) {
        ; 
//cekaj tu
    
}
    
    
//za APB1 bus je prebrzo 72MHz, maksimum je 36MHz, 
    //ukljucujemo delitelj /2
    
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
    
    
    
//-------------------------------------------------------
    //----------- Konfiguracija za I/O port -----------------
    //-------------------------------------------------------
    
    //svaka periferija je po resetu iskljucena tako sto 
    //joj je iskljucen clock
    //Da bi radila mora da se ukljuci
    
    //ukljuci clock za sistemski bus AHB
    //ovo je opciono, po default je ukljuceno za SRAM i FLASH memoriju
    
RCC->AHBENR |= RCC_AHBENR_SRAMEN;
    
RCC->AHBENR |= RCC_AHBENR_FLITFEN;    
    
    
//ukljuci clock za APB2, on je za sve GPIOx
    
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN//GPIOA
    
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN//GPIOB
    
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN//GPIOC
    
    //konfiguracija PC13
    //po default svi pinovi su Input
    //ima dva registra CRL za pinove 0-7 i CRH za pinove 8-15
    //definisi ga kao general purpose Output push-pull, 50MHz
    
GPIOC->CRH &= ~GPIO_CRH_CNF13_0//ocisti bit CNF13_0
    
GPIOC->CRH &= ~GPIO_CRH_CNF13_1//ocisti bit CNF13_1
    
GPIOC->CRH |=  GPIO_CRH_MODE13_0//setuj bit MODE13_0
    
GPIOC->CRH |=  GPIO_CRH_MODE13_1//setuj bit MODE13_1
    
    //atomic setovanje (BS) ili resotovanje (BR) pojedinacnog bita porta 
    
GPIOC->BSRR=GPIO_BSRR_BR13//0 = TURN LED ON
    
    
while(1) {
        
//tu se vrtimo ...
        
GPIOC->BSRR=GPIO_BSRR_BR13;
        
GPIOC->BSRR=GPIO_BSRR_BS13;
        
GPIOC->BSRR=GPIO_BSRR_BR13;
        
GPIOC->BSRR=GPIO_BSRR_BS13;
        
GPIOC->BSRR=GPIO_BSRR_BR13;
        
GPIOC->BSRR=GPIO_BSRR_BS13;
        
GPIOC->BSRR=GPIO_BSRR_BR13;
        
GPIOC->BSRR=GPIO_BSRR_BS13;
    }
    

Reply


Messages In This Thread
STM32 generic board - by gigabyte091 - 02-15-2017, 01:23 PM
RE: STM32 generic board - by gigabyte091 - 02-15-2017, 07:21 PM
RE: STM32 generic board - by gorankg - 02-15-2017, 09:02 PM
RE: STM32 generic board - by npejcic - 02-15-2017, 10:51 PM
RE: STM32 generic board - by gigabyte091 - 02-16-2017, 05:48 AM
RE: STM32 generic board - by gorankg - 02-16-2017, 07:25 AM
RE: STM32 generic board - by gigabyte091 - 02-16-2017, 07:56 AM
RE: STM32 generic board - by gorankg - 02-16-2017, 09:39 AM
RE: STM32 generic board - by gigabyte091 - 02-16-2017, 10:53 AM
RE: STM32 generic board - by gorankg - 02-16-2017, 11:11 AM
RE: STM32 generic board - by gigabyte091 - 02-16-2017, 12:18 PM
RE: STM32 generic board - by gorankg - 02-16-2017, 12:49 PM
RE: STM32 generic board - by gigabyte091 - 02-16-2017, 07:48 PM
RE: STM32 generic board - by gorankg - 02-16-2017, 11:02 PM
RE: STM32 generic board - by gigabyte091 - 02-17-2017, 06:56 AM
RE: STM32 generic board - by gigabyte091 - 03-02-2017, 08:50 AM
RE: STM32 generic board - by mikikg - 03-02-2017, 12:31 PM
RE: STM32 generic board - by mikikg - 03-02-2017, 12:41 PM
RE: STM32 generic board - by mikikg - 03-02-2017, 02:02 PM
RE: STM32 generic board - by gigabyte091 - 03-02-2017, 03:49 PM
RE: STM32 generic board - by me[R]a - 03-02-2017, 05:25 PM
RE: STM32 generic board - by vojinilic - 03-02-2017, 09:52 PM
RE: STM32 generic board - by gigabyte091 - 03-02-2017, 07:51 PM
RE: STM32 generic board - by mikikg - 03-02-2017, 11:42 PM
RE: STM32 generic board - by gigabyte091 - 03-03-2017, 07:53 AM
RE: STM32 generic board - by yugaja - 03-03-2017, 12:34 PM
RE: STM32 generic board - by mikikg - 03-03-2017, 01:39 PM
RE: STM32 generic board - by npejcic - 03-03-2017, 01:49 PM
RE: STM32 generic board - by mikikg - 03-03-2017, 02:08 PM
RE: STM32 generic board - by mikikg - 03-03-2017, 02:37 PM
RE: STM32 generic board - by mikikg - 03-03-2017, 02:57 PM
RE: STM32 generic board - by npejcic - 03-03-2017, 03:18 PM
RE: STM32 generic board - by mikikg - 03-03-2017, 03:30 PM
RE: STM32 generic board - by npejcic - 03-03-2017, 03:54 PM
RE: STM32 generic board - by gigabyte091 - 03-03-2017, 05:50 PM
RE: STM32 generic board - by mikikg - 03-05-2017, 12:10 AM
RE: STM32 generic board - by mikikg - 03-05-2017, 01:45 AM
RE: STM32 generic board - by gigabyte091 - 03-05-2017, 07:22 AM
RE: STM32 generic board - by npejcic - 03-05-2017, 09:52 AM
RE: STM32 generic board - by gigabyte091 - 03-05-2017, 10:41 AM
RE: STM32 generic board - by npejcic - 03-05-2017, 11:27 AM
RE: STM32 generic board - by mikikg - 03-05-2017, 01:42 PM
RE: STM32 generic board - by mikikg - 03-05-2017, 02:21 PM
RE: STM32 generic board - by yugaja - 03-06-2017, 10:30 AM
RE: STM32 generic board - by npejcic - 03-06-2017, 11:31 AM
RE: STM32 generic board - by yugaja - 03-06-2017, 11:37 AM
RE: STM32 generic board - by npejcic - 03-06-2017, 01:31 PM
RE: STM32 generic board - by gorankg - 03-06-2017, 01:57 PM
RE: STM32 generic board - by mikikg - 03-06-2017, 02:54 PM
RE: STM32 generic board - by mikikg - 03-06-2017, 03:56 PM
RE: STM32 generic board - by gigabyte091 - 03-06-2017, 04:21 PM
RE: STM32 generic board - by npejcic - 03-06-2017, 05:58 PM
RE: STM32 generic board - by mikikg - 03-06-2017, 06:04 PM
RE: STM32 generic board - by Macola - 03-06-2017, 07:22 PM
RE: STM32 generic board - by Macola - 03-06-2017, 07:38 PM
RE: STM32 generic board - by Macola - 03-06-2017, 07:47 PM
RE: STM32 generic board - by Macola - 03-06-2017, 08:15 PM
RE: STM32 generic board - by yugaja - 03-07-2017, 05:13 PM
RE: STM32 generic board - by Milan94 - 03-07-2017, 03:09 PM
RE: STM32 generic board - by vojinilic - 03-07-2017, 03:14 PM
RE: STM32 generic board - by mikikg - 03-07-2017, 03:23 PM
RE: STM32 generic board - by Macola - 03-07-2017, 05:34 PM
RE: STM32 generic board - by Macola - 03-07-2017, 05:50 PM
RE: STM32 generic board - by vojinilic - 03-07-2017, 08:03 PM
RE: STM32 generic board - by vojinilic - 03-07-2017, 08:54 PM
RE: STM32 generic board - by mikikg - 03-07-2017, 11:21 PM
RE: STM32 generic board - by Macola - 03-07-2017, 11:38 PM
RE: STM32 generic board - by mikikg - 03-08-2017, 04:03 AM
RE: STM32 generic board - by npejcic - 03-08-2017, 06:15 PM
RE: STM32 generic board - by mikikg - 03-10-2017, 10:06 AM
RE: STM32 generic board - by mikikg - 03-10-2017, 10:19 AM
RE: STM32 generic board - by gigabyte091 - 03-17-2017, 02:25 PM
RE: STM32 generic board - by progster - 07-13-2017, 04:49 PM
RE: STM32 generic board - by mikikg - 07-13-2017, 06:37 PM
RE: STM32 generic board - by Macola - 07-13-2017, 08:00 PM
RE: STM32 generic board - by progster - 07-13-2017, 09:13 PM
RE: STM32 generic board - by vojinilic - 07-14-2017, 08:04 AM
RE: STM32 generic board - by progster - 07-14-2017, 03:23 PM
RE: STM32 generic board - by Milan94 - 07-14-2017, 04:33 PM
RE: STM32 generic board - by progster - 07-14-2017, 04:45 PM
RE: STM32 generic board - by dlalkovic - 07-14-2017, 04:46 PM
RE: STM32 generic board - by progster - 07-14-2017, 04:50 PM
RE: STM32 generic board - by mikikg - 07-14-2017, 05:05 PM
RE: STM32 generic board - by progster - 07-14-2017, 05:09 PM
RE: STM32 generic board - by mikikg - 07-14-2017, 05:12 PM
RE: STM32 generic board - by progster - 07-14-2017, 05:19 PM
RE: STM32 generic board - by mikikg - 07-14-2017, 05:31 PM
RE: STM32 generic board - by progster - 07-14-2017, 05:36 PM
RE: STM32 generic board - by mikikg - 07-14-2017, 05:37 PM
RE: STM32 generic board - by progster - 07-14-2017, 05:43 PM
RE: STM32 generic board - by mikikg - 07-14-2017, 05:45 PM
RE: STM32 generic board - by progster - 07-14-2017, 05:46 PM
RE: STM32 generic board - by Macola - 07-14-2017, 06:46 PM
RE: STM32 generic board - by progster - 07-15-2017, 04:56 PM
RE: STM32 generic board - by progster - 07-15-2017, 05:13 PM
RE: STM32 generic board - by mikikg - 07-15-2017, 06:02 PM
RE: STM32 generic board - by Macola - 07-15-2017, 06:23 PM
RE: STM32 generic board - by progster - 07-15-2017, 07:01 PM
RE: STM32 generic board - by mikikg - 07-15-2017, 07:06 PM
RE: STM32 generic board - by progster - 07-15-2017, 07:25 PM
RE: STM32 generic board - by mikikg - 07-15-2017, 08:06 PM
RE: STM32 generic board - by Macola - 07-15-2017, 10:28 PM
RE: STM32 generic board - by progster - 07-15-2017, 10:39 PM
RE: STM32 generic board - by Macola - 07-15-2017, 11:12 PM
RE: STM32 generic board - by mikikg - 07-31-2017, 09:03 PM
RE: STM32 generic board - by npejcic - 08-01-2017, 05:43 PM
RE: STM32 generic board - by npejcic - 08-04-2017, 09:33 PM
RE: STM32 generic board - by vsavic - 08-04-2017, 09:38 PM
RE: STM32 generic board - by npejcic - 08-04-2017, 10:44 PM
RE: STM32 generic board - by mikikg - 08-15-2017, 05:25 PM
RE: STM32 generic board - by bogdan.kecman - 08-15-2017, 05:49 PM
RE: STM32 generic board - by npejcic - 08-16-2017, 01:46 PM
RE: STM32 generic board - by mikikg - 08-16-2017, 02:22 PM
RE: STM32 generic board - by npejcic - 08-17-2017, 09:40 AM
RE: STM32 generic board - by Makso - 09-03-2017, 06:56 PM
RE: STM32 generic board - by npejcic - 09-03-2017, 07:10 PM
RE: STM32 generic board - by mikikg - 09-03-2017, 07:40 PM
RE: STM32 generic board - by vsavic - 09-26-2017, 02:49 PM
RE: STM32 generic board - by mikikg - 09-29-2017, 11:45 AM
RE: STM32 generic board - by vsavic - 09-30-2017, 09:30 PM
RE: STM32 generic board - by vojinilic - 09-27-2017, 09:06 AM
RE: STM32 generic board - by mikikg - 09-27-2017, 09:52 AM
RE: STM32 generic board - by vojinilic - 09-27-2017, 12:23 PM
RE: STM32 generic board - by mikikg - 09-27-2017, 01:03 PM
RE: STM32 generic board - by vojinilic - 09-27-2017, 01:08 PM
RE: STM32 generic board - by mikikg - 09-27-2017, 01:17 PM
RE: STM32 generic board - by npejcic - 09-27-2017, 09:38 PM
RE: STM32 generic board - by npejcic - 09-27-2017, 09:44 PM
RE: STM32 generic board - by vojinilic - 09-28-2017, 11:30 AM
RE: STM32 generic board - by mikikg - 09-28-2017, 11:50 AM
RE: STM32 generic board - by vojinilic - 09-28-2017, 11:55 AM
RE: STM32 generic board - by mikikg - 09-28-2017, 12:07 PM
RE: STM32 generic board - by vojinilic - 09-28-2017, 01:33 PM
RE: STM32 generic board - by npejcic - 09-29-2017, 12:40 PM
RE: STM32 generic board - by mikikg - 09-29-2017, 01:08 PM
RE: STM32 generic board - by mikikg - 09-29-2017, 01:23 PM
RE: STM32 generic board - by mikikg - 10-01-2017, 07:36 PM
RE: STM32 generic board - by vsavic - 10-02-2017, 02:45 PM
RE: STM32 generic board - by mikikg - 10-05-2017, 11:31 PM
RE: STM32 generic board - by yugaja - 10-06-2017, 01:06 PM
RE: STM32 generic board - by mikikg - 10-06-2017, 01:22 PM
RE: STM32 generic board - by yugaja - 10-06-2017, 01:50 PM
RE: STM32 generic board - by npejcic - 10-07-2017, 11:29 AM
RE: STM32 generic board - by gorankg - 10-07-2017, 01:05 PM
RE: STM32 generic board - by mikikg - 10-07-2017, 12:10 PM
RE: STM32 generic board - by npejcic - 10-07-2017, 12:29 PM
RE: STM32 generic board - by mikikg - 10-07-2017, 12:42 PM
RE: STM32 generic board - by npejcic - 10-07-2017, 03:19 PM
RE: STM32 generic board - by gorankg - 10-07-2017, 04:06 PM
RE: STM32 generic board - by npejcic - 10-07-2017, 04:40 PM
RE: STM32 generic board - by gorankg - 10-07-2017, 07:16 PM
RE: STM32 generic board - by npejcic - 10-07-2017, 07:47 PM
RE: STM32 generic board - by npejcic - 10-07-2017, 07:53 PM
RE: STM32 generic board - by mikikg - 10-07-2017, 08:40 PM
RE: STM32 generic board - by npejcic - 10-07-2017, 08:52 PM
RE: STM32 generic board - by gorankg - 10-07-2017, 10:02 PM
RE: STM32 generic board - by mikikg - 10-08-2017, 07:31 AM
RE: STM32 generic board - by mikikg - 10-08-2017, 07:53 AM
RE: STM32 generic board - by mikikg - 10-08-2017, 10:43 AM
RE: STM32 generic board - by npejcic - 10-08-2017, 11:29 AM
RE: STM32 generic board - by mikikg - 10-08-2017, 08:34 PM
RE: STM32 generic board - by npejcic - 10-08-2017, 08:57 PM
RE: STM32 generic board - by mikikg - 10-12-2017, 12:16 PM
RE: STM32 generic board - by Macola - 10-12-2017, 04:22 PM
RE: STM32 generic board - by gorankg - 10-13-2017, 07:15 AM
RE: STM32 generic board - by npejcic - 10-13-2017, 08:51 AM
RE: STM32 generic board - by yugaja - 10-13-2017, 09:25 AM
RE: STM32 generic board - by vojinilic - 10-13-2017, 09:58 AM
RE: STM32 generic board - by yugaja - 10-13-2017, 10:13 AM
RE: STM32 generic board - by vojinilic - 10-13-2017, 10:46 AM
RE: STM32 generic board - by mikikg - 10-13-2017, 11:10 AM
RE: STM32 generic board - by gorankg - 10-13-2017, 11:39 AM
RE: STM32 generic board - by mikikg - 10-13-2017, 02:33 PM
RE: STM32 generic board - by mikikg - 10-13-2017, 11:57 AM
RE: STM32 generic board - by mikikg - 10-13-2017, 12:32 PM
RE: STM32 generic board - by gorankg - 10-13-2017, 12:37 PM
RE: STM32 generic board - by mikikg - 10-13-2017, 12:48 PM
RE: STM32 generic board - by yugaja - 10-13-2017, 01:00 PM
RE: STM32 generic board - by mikikg - 10-13-2017, 01:13 PM
RE: STM32 generic board - by yugaja - 10-13-2017, 02:54 PM
RE: STM32 generic board - by mikikg - 10-13-2017, 03:23 PM
RE: STM32 generic board - by yugaja - 10-13-2017, 03:59 PM
RE: STM32 generic board - by ronovar - 10-14-2017, 08:51 PM
RE: STM32 generic board - by gorankg - 10-14-2017, 09:40 PM
RE: STM32 generic board - by mikikg - 10-14-2017, 09:17 PM
RE: STM32 generic board - by ronovar - 10-14-2017, 10:30 PM
RE: STM32 generic board - by mikikg - 10-14-2017, 11:07 PM
RE: STM32 generic board - by mikikg - 10-15-2017, 12:09 AM
RE: STM32 generic board - by mikikg - 10-15-2017, 12:38 PM
RE: STM32 generic board - by vojinilic - 10-15-2017, 01:06 PM
RE: STM32 generic board - by yugaja - 10-15-2017, 01:13 PM
RE: STM32 generic board - by mikikg - 10-15-2017, 01:34 PM
RE: STM32 generic board - by vojinilic - 10-15-2017, 02:13 PM
RE: STM32 generic board - by mikikg - 10-15-2017, 02:26 PM
RE: STM32 generic board - by vojinilic - 10-15-2017, 02:35 PM
RE: STM32 generic board - by mikikg - 10-15-2017, 02:46 PM
RE: STM32 generic board - by mikikg - 10-15-2017, 04:36 PM
RE: STM32 generic board - by mikikg - 10-15-2017, 05:22 PM
RE: STM32 generic board - by vojinilic - 10-15-2017, 07:06 PM
RE: STM32 generic board - by mikikg - 10-16-2017, 04:31 AM
RE: STM32 generic board - by mikikg - 10-17-2017, 09:44 AM
RE: STM32 generic board - by ronovar - 10-17-2017, 09:58 AM
RE: STM32 generic board - by mikikg - 10-17-2017, 09:11 PM
RE: STM32 generic board - by prasimix - 10-24-2017, 01:44 PM
RE: STM32 generic board - by mikikg - 10-24-2017, 02:04 PM
RE: STM32 generic board - by prasimix - 10-24-2017, 02:37 PM
RE: STM32 generic board - by mikikg - 10-24-2017, 04:29 PM
RE: STM32 generic board - by prasimix - 10-24-2017, 10:03 PM
RE: STM32 generic board - by gorankg - 10-24-2017, 08:01 PM
RE: STM32 generic board - by prasimix - 10-24-2017, 10:10 PM
RE: STM32 generic board - by gorankg - 10-24-2017, 10:53 PM
RE: STM32 generic board - by prasimix - 10-24-2017, 11:13 PM
RE: STM32 generic board - by mikikg - 10-24-2017, 09:58 PM
RE: STM32 generic board - by mikikg - 10-24-2017, 10:08 PM
RE: STM32 generic board - by gorankg - 10-24-2017, 10:40 PM
RE: STM32 generic board - by mikikg - 10-24-2017, 11:27 PM
RE: STM32 generic board - by mikikg - 10-25-2017, 12:24 AM
RE: STM32 generic board - by prasimix - 10-25-2017, 06:57 AM
RE: STM32 generic board - by mikikg - 10-25-2017, 02:51 AM
RE: STM32 generic board - by mikikg - 10-25-2017, 11:44 AM
RE: STM32 generic board - by mikikg - 10-27-2017, 04:18 PM
RE: STM32 generic board - by gorankg - 10-27-2017, 07:09 PM
RE: STM32 generic board - by yugaja - 10-27-2017, 09:41 PM
RE: STM32 generic board - by mikikg - 11-07-2017, 02:52 PM
RE: STM32 generic board - by mikikg - 11-07-2017, 08:16 PM
RE: STM32 generic board - by gorankg - 11-07-2017, 09:18 PM

Forum Jump:


Users browsing this thread: 8 Guest(s)