首先,使用`HAL_NVIC_SetPriority()`函数设置中断优先级,然后使用`HAL_NVIC_EnableIRQ()`函数使能中断。在中断处理函数中,使用`HAL_GPIO_EXTI_Callback()`函数处理实际的中断事件。 5. 示例代码 为了更好地理解GPIO驱动程序的编写过程,本文给出了一个简单的示例代码。示例展示了如何初始化和配置GPIO引脚,并通过按键...
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; // 输出模式 GPIO_InitStructure.Pull = GPIO_NOPULL; // 不使用内部上下拉电阻 GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_LOW; // 低速 GPIO_InitStructure.Pin = GPIO_PIN_0; // 配置的引脚 HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化G...
/* 初始化(STM32CubeMX自动调用)*/ void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) /* 重置*/ void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin) /* 读引脚状态 */ GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) /* 写引脚状...
__HAL_RCC_GPIOA_CLK_ENABLE();//使能GPIOA时钟/*Configure GPIO pin Output Level*/HAL_GPIO_WritePin(GPIOA, DONG_OUT_1_Pin|DONG_OUT_2_Pin, GPIO_PIN_RESET);//设置上电电平为低/*Configure GPIO pins : PAPin PAPin*/GPIO_InitStruct.Pin= DONG_OUT_1_Pin|DONG_OUT_2_Pin;//两个GPIO_PINGP...
tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOHEN);\ UNUSED(tmpreg); \ }while(0U) 这里使能H口是因为H口接的外部晶振。 3.配置引脚的初始化电平。 /*Configure GPIO pin Output Level*/HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15, GPIO_PIN_SET); ...
(1)STM32使用HAL库操作GPIO (1)STM32使⽤HAL库操作GPIO ⼀初始化GPIO 使⽤HAL库的优点在于不⽤⼿动添加初始化的代码了,CubeMX会根据软件设置⾃动⽣成。⾃动⽣成的HAL库GPIO初始化代码:static void MX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct;/* GPIO Ports Clock Enable */ ...
成员Alternate用于配置引脚复用,可选择的复用方式在文件stm32h7xx_hal_gpio_ex.h里面进行了定义,比如串口复用: 代码语言:javascript 复制 GPIO_AF7_USART1GPIO_AF7_USART2GPIO_AF7_USART3GPIO_AF7_USART6GPIO_AF7_UART7 注意事项: 与F1,F4系列的标准库不同,H7的HAL库已经没有单独的EXTI外部中断设置文件,是...
;//翻转引脚函数voidHAL_GPIO_TogglePin(GPIO_TypeDef*GPIOx,uint16_t GPIO_Pin);//锁定引脚函数HAL_StatusTypeDefHAL_GPIO_LockPin(GPIO_TypeDef*GPIOx,uint16_t GPIO_Pin);//中断服务函数voidHAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);//中断回调函数voidHAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);...
voidHAL_GPIO_WritePin(GPIO_TypeDef *GPIOx,uint16_tGPIO_Pin, GPIO_PinState PinState){/* Check the parameters */assert_param(IS_GPIO_PIN(GPIO_Pin));assert_param(IS_GPIO_PIN_ACTION(PinState)); if(PinState != GPIO_PIN_RESET){GPIOx-...
一般来说,带这种stm32f1xx的.c文件都是hal库,是软件自动生成的,里面有可以调用的各种功能函数,里面的功能函数也是可以根据需求去自己更改的。 另外的,比如这里面的gpio.c多是具体功能的设置函数。 main.c是主程序。 现在我们需要写一个让led灯亮的程序,由于我们是三色灯,所以只需要把LED_R、LED_G、LED_B三...