Main.c
HAL_Init();
SystemClock_Config();
MX_GPIO_LED0_Init();
MX_GPIO_KEY3_Init();
MX_GPIO_KEY2_Init();
Stm32f4xx_hal_msp.c 与Hal库外设接口 初始化相关函数
// KEY1 GPIO PE3
void MX_GPIO_KEY3_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOE_CLK_ENABLE();
/*Configure GPIO pin : PE4 */
GPIO_InitStruct.Pin = GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI3_IRQn, 2, 0);// 抢占组为4bit 副优先级也为4bit ,数字越少优先级越高
HAL_NVIC_EnableIRQ(EXTI3_IRQn);
}
// KEY2 GPIO PE2
void MX_GPIO_KEY2_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOE_CLK_ENABLE();
/*Configure GPIO pin : PE4 */
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI2_IRQn, 2, 0);//
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
}
Stm32f4xx_it.c
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin ==GPIO_PIN_3 || GPIO_Pin ==GPIO_PIN_2)
{
HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_10);
}
}
void EXTI3_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler( GPIO_PIN_3);
}
//KEY1----PE4
void EXTI2_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler( GPIO_PIN_2);
}
Ledandohters_thread.c
while(1)
{
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET);
osDelay(500);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET);
osDelay(500);
printf("hello \r\n");
}
Stm32 HAL 库的使用---Gpio:
猜你喜欢
转载自blog.csdn.net/tiger15605353603/article/details/81380300
今日推荐
周排行