Jump to content
Sign in to follow this  
Guest Cianid

Не срабатывает прерывание STM32F446

Recommended Posts

Guest Cianid

Всех приветствую. Столкнулся с проблемой обработки прерывания. При нажатии кнопки не вызывается обработчик. При этом в дебаге вижу появление флага в регистре PR при нажатии кнопки. 


#include "stm32f4xx.h"


void spi_init() {
	
	RCC->APB2ENR  |= RCC_APB2ENR_SPI1EN;
	RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN;
	GPIOB->AFR[0] |= (0x05<<4*3) ; // Enable SPI (CLK) as AF
	GPIOB->AFR[0] |= (0x05<<4*5); // Enable SPI (MOSI) as AF

  GPIOB->MODER &= ~(0xFFFF);

	SPI1->CR1 = 1<<SPI_CR1_DFF_Pos 
    | 0<<SPI_CR1_LSBFIRST_Pos     
    | 1<<SPI_CR1_SSM_Pos         
    | 1<<SPI_CR1_SSI_Pos         
    | 0x04<<SPI_CR1_BR_Pos       
    | 1<<SPI_CR1_MSTR_Pos       
    | 0<<SPI_CR1_CPOL_Pos 
	  | 0<<SPI_CR1_CPHA_Pos; 
	SPI1->CR1 |= 1<<SPI_CR1_SPE_Pos;
}

void spi_write(uint16_t data)
{
  while(!(SPI1->SR & SPI_SR_TXE));
  SPI1->DR = data;
}

void port_led_init () {
	RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
	GPIOA->MODER |= GPIO_MODER_MODE5_0;
	GPIOA->OTYPER |= GPIO_OTYPER_OT_0;
	GPIOA->OSPEEDR = 0;
	GPIOA->PUPDR |= GPIO_PUPDR_PUPDR0_0;
}

void interrupt_init () {
	RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN;
	RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
	GPIOC->PUPDR |= GPIO_PUPDR_PUPD13_0;
	__NVIC_EnableIRQ(EXTI3_IRQn);

	SYSCFG->EXTICR[3] &= ~SYSCFG_EXTICR4_EXTI13;
	SYSCFG->EXTICR[3] |= SYSCFG_EXTICR4_EXTI13_PC;

	EXTI->FTSR |= EXTI_FTSR_TR13;
	EXTI->RTSR |= EXTI_RTSR_TR13;
	EXTI->IMR |= EXTI_IMR_IM13;

}



int main(void)
{
	spi_init();	
	port_led_init();
	interrupt_init();

}

void EXTI3_IRQHandler () {
		if (EXTI->PR & EXTI_PR_PR13) {
		EXTI->PR |= EXTI_PR_PR13;

		spi_write(0xAB);
		spi_write(0x14);		

		
		for (int i =0; i<1000000; ++i) {
			GPIOA->ODR |= GPIO_ODR_OD5;
	}
		for (int i =0; i<1000000; ++i) {
			GPIOA->ODR = 0;
	}
}
	
}

Share this post


Link to post
Share on other sites

Стесняюсь спросить, а где главный цикл? while(1) -  где?

:crazy:

Share this post


Link to post
Share on other sites
Guest Cianid

Забыл вставить, там обычная мигалка крутится.

Там есть цикл с мигалкой. Просто забыл добавить сюда.

Share this post


Link to post
Share on other sites

Вебинар «МЭМС-датчики ST для работы со звуком – новые возможности» (28.10.2020)

28 октября все желающие приглашаются для участия в вебинаре, посвященном семейству МЭМС-датчиков STMicroelectronics для акустических приложений. Предметом детального рассмотрения на вебинаре станут микрофоны, их топологии применения и возможности. Вы услышите о новых мультирежимных широкодиапазонных микрофонах с нижним портом и PDM-интерфейсом для систем с батарейным питанием.

Подробнее

Должен быть обработчик прерывания: EXTI15_10_IRQHandler и разрешать __NVIC_EnableIRQ(EXTI15_10_IRQn); соответственно.

Share this post


Link to post
Share on other sites

STM32L562E-DK – первая отладочная платформа ST на ядре ARM Cortex-M33

STMicroelectronics представляет демонстрационно-отладочную платформу на базе ядра Cortex-M33 – STM32L562E-DK. Данная платформа основана на микроконтроллере нового семейства – STM32L5. STM32L562E-DK позволяет разработчику в полной мере раскрыть и опробовать новые возможности микроконтроллеров STM32L5 с тщательно проработанным функционалом для обеспечения высокого уровня безопасности и защиты.

Подробнее

Тест уровня кондуктивной помехи электронного устройства

Электромагнитная совместимость (ЭМС) является важным параметром электронных устройств, особенно это актуально в современном мире, насыщенном разнообразными гаджетами. Специалисты компании Mornsun подготовили видеоролик по тестированию одной из составляющих ЭМС – кондуктивной помехи.

Подробнее

Guest MasterElectric
09.08.2020 в 13:23, my504 сказал:

Стесняюсь спросить, а где главный цикл? while(1) -  где?

да он в стартапе))

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...