Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stm32f4xx.h" // Device header
- void delay(int delayms);
- int counter=0;
- int main(void)
- {
- __disable_irq();
- RCC->AHB1ENR |=RCC_AHB1ENR_GPIOAEN ;
- RCC->AHB1ENR |=RCC_AHB1ENR_GPIOCEN;
- GPIOC->PUPDR|=0x4002000;
- //RCC->AHB1ENR |=4;//enable gpio a clock
- GPIOA->MODER|= GPIO_MODER_MODER5_0; //PA5 as output
- GPIOA->MODER|= GPIO_MODER_MODER6_0; //PA6 as output
- RCC->APB2ENR|=RCC_APB2ENR_SYSCFGEN ;
- SYSCFG->EXTICR[3]|=SYSCFG_EXTICR4_EXTI13_PC;
- EXTI->IMR|=EXTI_IMR_MR13;
- //EXTI->IMR|=0x2000;
- EXTI->FTSR|=EXTI_RTSR_TR13;
- //EXTI->FTSR|=0x2000;
- NVIC_EnableIRQ(EXTI15_10_IRQn);
- __enable_irq();
- while(1)
- {
- GPIOA->BSRR|=GPIO_BSRR_BS6;
- delay(300);
- GPIOA->BSRR|=GPIO_BSRR_BR6;
- delay(300);
- counter++;
- }
- }
- void EXTI15_10_IRQHandler(void){
- GPIOA->BSRR|=GPIO_BSRR_BS5;
- delay(300);
- GPIOA->BSRR|=GPIO_BSRR_BR5;
- delay(300);
- GPIOA->BSRR|=GPIO_BSRR_BS5;
- delay(300);
- GPIOA->BSRR|=GPIO_BSRR_BR5;
- delay(300);
- EXTI->PR=EXTI_PR_PR13;
- }
- void delay(int ms)
- {
- SysTick->LOAD=16000-1;
- SysTick->VAL=0;
- SysTick->CTRL=0x5;
- for (int i=0;i<ms;i++)
- {
- while(!(SysTick->CTRL &0x10000)){}
- }
- SysTick->CTRL=0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement