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

Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее

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

Share this post


Link to post
Share on other sites

Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

Подробнее

Новинки гибридных конденсаторов: преимущества технологии

Гибридные конденсаторы унаследовали от полимерных конденсаторов такие достоинства как устойчивость к импульсам тока, повышенную надежность и низкое собственное сопротивление, а также высокую емкость и низкий ток утечки, как у алюминиевых электролитов. Благодаря этому гибридные конденсаторы могут с успехом заменить традиционные алюминиевые конденсаторы.

Подробнее

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...