我用的是STM32L053R8 Nucleo开发板
然后外接的其他学习板上的一个LED和一个按键。
LED接PB4,GPIO口低电平时LED点亮。
按键与PB3和3.3V电源相接,另一端接地。
程序是根据在官网上下的例程抄的,但是中断还是没反应。
请各位帮忙看看错在哪里,谢谢!
- #include "stm32l0xx_hal.h"
- /* 配置系统时钟 */
- static void SyatemClook_Config(void);
- /* 配置PB3口中断 */
- static void EXTI_PB3_Config(void);
- /* 配置PB2口中断 */
- static void GPIO_LED(void);
- int main (void)
- {
- HAL_Init();
- SyatemClook_Config();
- EXTI_PB3_Config();
- GPIO_LED();
- while (1)
- {}
- }
- /* 设置时钟为MSI */
- static void SyatemClook_Config(void)
- {
- RCC_ClkInitTypeDef RCC_ClkInit;
- RCC_OscInitTypeDef RCC_OscInit;
-
- __PWR_CLK_ENABLE();
-
- __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
-
- RCC_OscInit.OscillatorType = RCC_OSCILLATORTYPE_MSI;
- RCC_OscInit.MSIState = RCC_MSI_ON;
- RCC_OscInit.MSIClockRange = RCC_MSIRANGE_5;
- RCC_OscInit.MSICalibrationValue = 0x00;
- RCC_OscInit.PLL.PLLState = RCC_PLL_NONE;
- HAL_RCC_OscConfig(&RCC_OscInit);
-
- RCC_ClkInit.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
- RCC_ClkInit.SYSCLKSource = RCC_SYSCLKSOURCE_MSI;
- RCC_ClkInit.AHBCLKDivider = RCC_SYSCLK_DIV1;
- RCC_ClkInit.APB1CLKDivider = RCC_HCLK_DIV1;
- RCC_ClkInit.APB2CLKDivider = RCC_HCLK_DIV1;
- HAL_RCC_ClockConfig(&RCC_ClkInit, FLASH_LATENCY_0);
-
- }
- /* 设置为下降沿中断 */
- static void EXTI_PB3_Config(void)
- {
- GPIO_InitTypeDef GPIO_EXTI;
- __GPIOB_CLK_ENABLE();
- GPIO_EXTI.Pin = GPIO_PIN_3;
- GPIO_EXTI.Mode = GPIO_MODE_IT_FALLING;
- GPIO_EXTI.Pull = GPIO_NOPULL;
- GPIO_EXTI.Speed = GPIO_SPEED_FAST;
- HAL_GPIO_Init(GPIOB,&GPIO_EXTI);
- HAL_NVIC_SetPriority(EXTI2_3_IRQn, 3, 0);
- HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);
- }
- /* LED低电平时点亮 */
- static void GPIO_LED(void)
- {
- GPIO_InitTypeDef LED;
- __GPIOB_CLK_ENABLE();
- LED.Pin = GPIO_PIN_4;
- LED.Mode = GPIO_MODE_OUTPUT_PP;
- LED.Pull = GPIO_PULLUP;
- LED.Speed = GPIO_SPEED_FAST;
- HAL_GPIO_Init(GPIOB,&LED);
-
- }
- void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
- {
- if(GPIO_Pin == GPIO_PIN_3)
- {
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4,1);
- }
- }
复制代码
此帖出自
小平头技术问答
一周热门 更多>