CODE
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
int main() {
GPIO_InitTypeDef PORT;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2ENR_AFIOEN , ENABLE);
PORT.GPIO_Pin = (GPIO_Pin_9 | GPIO_Pin_8);
PORT.GPIO_Mode = GPIO_Mode_Out_PP;
PORT.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOC, &PORT);
AFIO->EXTICR[0]|=AFIO_EXTICR1_EXTI1_PB;
//Прерывания от нулевой и первой ноги разрешены
EXTI->IMR|=(EXTI_IMR_MR0 | EXTI_IMR_MR1);
//Прерывания на обоих ногах по нарастающему фронту
EXTI->RTSR|=(EXTI_RTSR_TR0 | EXTI_RTSR_TR1);
//Разрешаем оба прерывания
NVIC_EnableIRQ (EXTI0_IRQn);
NVIC_EnableIRQ (EXTI1_IRQn);
while(1)
{
}
}
void EXTI0_IRQHandler(void)
{
GPIOC->ODR^=GPIO_Pin_8;
EXTI->PR|=0x01;
}
void EXTI1_IRQHandler(void)
{
GPIOC->ODR^=GPIO_Pin_9;
EXTI->PR|=0x02;
}
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
int main() {
GPIO_InitTypeDef PORT;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2ENR_AFIOEN , ENABLE);
PORT.GPIO_Pin = (GPIO_Pin_9 | GPIO_Pin_8);
PORT.GPIO_Mode = GPIO_Mode_Out_PP;
PORT.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOC, &PORT);
AFIO->EXTICR[0]|=AFIO_EXTICR1_EXTI1_PB;
//Прерывания от нулевой и первой ноги разрешены
EXTI->IMR|=(EXTI_IMR_MR0 | EXTI_IMR_MR1);
//Прерывания на обоих ногах по нарастающему фронту
EXTI->RTSR|=(EXTI_RTSR_TR0 | EXTI_RTSR_TR1);
//Разрешаем оба прерывания
NVIC_EnableIRQ (EXTI0_IRQn);
NVIC_EnableIRQ (EXTI1_IRQn);
while(1)
{
}
}
void EXTI0_IRQHandler(void)
{
GPIOC->ODR^=GPIO_Pin_8;
EXTI->PR|=0x01;
}
void EXTI1_IRQHandler(void)
{
GPIOC->ODR^=GPIO_Pin_9;
EXTI->PR|=0x02;
}
Огромное спасибо.
Пардон народ разобрался тема снята и закрыта спасибо. Проблема была в настройках компилятора, не указал путь
$PROJ_DIR$\CM3\STM32F10x\startup\iar\. Все работает