初级会员

- 积分
- 62
- 金钱
- 62
- 注册时间
- 2018-1-18
- 在线时间
- 8 小时
|
1金钱
本帖最后由 2267120873 于 2018-3-18 13:54 编辑
#include "stm32l0xx_hal.h"
int x=1000;
void Clock_Init()
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
RCC_OscInitStruct.MSICalibrationValue = 0;
RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_5;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
void SysTick_Handler()
{
HAL_IncTick();
HAL_SYSTICK_IRQHandler();
}
void LED_Init()
{
GPIO_InitTypeDef GPIO_Initaaa;
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_Initaaa.Mode=GPIO_MODE_OUTPUT_PP;
GPIO_Initaaa.Pin=GPIO_PIN_5;
GPIO_Initaaa.Speed=GPIO_SPEED_FREQ_MEDIUM;
GPIO_Initaaa.Pull=GPIO_NOPULL;
HAL_GPIO_Init(GPIOA,&GPIO_Initaaa);
GPIO_Initaaa.Pin = GPIO_PIN_13;
GPIO_Initaaa.Mode = GPIO_MODE_IT_RISING;
GPIO_Initaaa.Pull = GPIO_PULLUP;
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
HAL_GPIO_Init(GPIOC, &GPIO_Initaaa);
HAL_NVIC_SetPriority(EXTI4_15_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);
}
/*
void EXTI4_13_IRQHandler(void)
{
HAL_NVIC_ClearPendingIRQ(EXTI4_15_IRQn);
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
}*/
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin==GPIO_PIN_13)
{
static int i=0;
HAL_Delay(10);
i=i+1;
if(i==1)
{
x=500;
HAL_Delay(10);
}
if(i==2)
{
x=100;
HAL_Delay(10);
}
if(i==3)
{
i=0;
x=1000;
HAL_Delay(10);
}
}
}
int main()
{
HAL_Init();
Clock_Init();
LED_Init();
while(1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(x);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_Delay(x);
}
}
中断进不去 程序是不是有问题 求大神!!!
|
|