#include "stm32f10x.h" void TIM2_IRQHandler(); //함수 선언 unsigned int count=0; int main(void) { RCC->APB2ENR|=0x8; //GPIOB 활성화 RCC->APB1ENR|=0x1; //TIM2 활성화 NVIC->ISER[0]|=(0x1ARR = 7199; // period TIM2->PSC = 99; // prescaler NVIC->IP[28]=0x01; //인터럽트 우선순위를 설정하는 레지스터입니다(지금은 사용하지 않습니다) TIM2->DIER=0x1; //360p 1: Update interrupt enabled. TIM2->EGR=0x1; //363p GPIOB->CRL=(0x3
전과 다르게 추가된 소스만 설명하도록 하겠습니다. 스위치를 추가해 보도록 하겠습니다. 스위치 관련 주소입니다 mode00으로 설정하고 CNF를 01(floatin input)으로 설정floating input일 경우에는 회로가 끊어진 상태이면 1이고 ground와 연결되어 있으면 0입니다. 스위치 값을 읽을 수 잇는 레지스터 입니다쓰는것은 불가능하고 읽는것만 가능합니다 #define RCC_APB2ENR (*(volatile unsigned int*)0x40021018) #define GPIOB_BSRR (*(volatile unsigned *)0x40010C10) #define GPIOB_CRL (*(volatile unsigned *)0x40010C00) #define GPIOA_CRL (*(vo..
stm32 cortex-m3(STM32F103C8T6)led를 깜박여보자(1)!!!!! 글에서는 GPIOB_ODR 레지스터를 사용해서 LED를 깜박여 보았는데요.GPIOB_ODR 레지스터를 사용해서 LED를 깜박이면 레지스터를 32개 모두 건들여 주기 때문에 비효율적일 수 있습니다. 그래서 GPIOB_BSRR 레지스터를 사용해서 깜박여보도록 하겠습니다. GPIOB_BSRR레지스터를 사용하면 비트 1개만 건들여서 LED를 제어할 수 있기 때문에 실행속도가 매우 빨라집니다 #define RCC_BPB2ENR (*(volatile unsigned int*)0x40021018) #define GPIOB_BSRR (*(volatile unsigned *)0x40010C10) #define GPIOB_CRL (*(..