Я использую плату обнаружения STM32F0308. Я хочу использовать внешнее прерывание на PIN11 PORTB. Проблема в том, что я не могу вызвать PORTB. Микроконтроллер по-прежнему использует PIN11 PORTA. Я знаю, что контакты портов соединены вместе, но я указываю, что PORTB по-прежнему микро использует PORTA. Я думаю, что в этой строке кода есть какая-то проблема
SYSCFG->EXTICR[3] = SYSCFG_EXTICR3_EXTI11_PB;
Вот код
#include"stm32f0xx.h"
volatile int portBPin10Counter;
void EXTI4_15_IRQHandler(void)
{
if(EXTI->PR & EXTI_PR_PR11)
{
EXTI->PR |= EXTI_PR_PR11;
portBPin10Counter++;
}
}
int main(void)
{
RCC->AHBENR |=RCC_AHBENR_GPIOBEN;
GPIOB->MODER &= ~GPIO_MODER_MODER11;
GPIOB->PUPDR &= ~GPIO_PUPDR_PUPDR11;
SYSCFG->EXTICR[3] =SYSCFG_EXTICR3_EXTI11_PB;
EXTI->RTSR |= EXTI_RTSR_TR11;
EXTI->IMR |= EXTI_IMR_MR11;
NVIC_EnableIRQ(EXTI4_15_IRQn);
NVIC_SetPriority(EXTI4_15_IRQn,1);
while(1)
{
}
}