voidMX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */__HAL_RCC_GPIOD_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE(); /*Configure GPIO pin Output Level */HAL_...
HAL_GPIO_Init()函数 该函数的作用是根据GPIO_Init中指定的参数初始化GPIOx外设。 由于是对管脚进行初始化定义,一般在mian()函数初始化中。 而在主程序的初始化中,有个注释是初始化所有配置的外设,点击查看这个函数。 在MX_GPIO_Init()可以看到,这里对管脚进行了初始化的配置。 HAL_GPIO_DeInit()函数 该函数...
HAL_GPIO_Init()函数 该函数的作用是根据GPIO_Init中指定的参数初始化GPIOx外设。 由于是对管脚进行初始化定义,一般在mian()函数初始化中。 而在主程序的初始化中,有个注释是初始化所有配置的外设,点击查看这个函数。 在MX_GPIO_Init()可以看到,这里对管脚进行了初始化的配置。 HAL_GPIO_DeInit()函数 该函数...
先看一下GPIO的初始化函数; staticvoidMX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct = {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOA_CLK_ENABLE();/*Configure GPIOpin Output Level */HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);//默认输出高/*Configure GPIO pin...
(1)STM32使用HAL库操作GPIO 一 初始化GPIO 使用HAL库的优点在于不用手动添加初始化的代码了,CubeMX会根据软件设置自动生成。 自动生成的HAL库GPIO初始化代码: staticvoid MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct;/*GPIO Ports Clock Enable*/__HAL_RCC_GPIOH_CLK_ENABLE();...
从生成的代码工程目录中打开keil工程,在MX_GPIO_Init(void)函数中会发现我们新添加的USER_KEY按键初始化代码,其模式为输入模式 3.2.2、添加其他必要代码 在主函数的主循环中添加按键扫描及响应函数,如下图所示 源代码如下 if(HAL_GPIO_ReadPin(USER_KEY_GPIO_Port,USER_KEY_Pin) == GPIO_PIN_SET) ...
exp: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2); ②void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); //初始化中断线:触发方式等 ③ITStatusEXTI_GetITStatus(uint32_t EXTI_Line); //判断中断线中断状态,是否发生 ④void EXTI_ClearITPendingBit(uint32_t EXTI_Line); ...
MX_GPIO_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while(1) { /* USER CODE END WHILE */ HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0); HAL_Delay(500); HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0); ...
本章节我们通过HAL库的HAL_GPIO_ReadPin函数(实际上是操作IDR寄存器)来读取按键对应GPIO引脚电平状态,从而判断按键是否有按下。实验程序的设计流程如下: KEY0按下,LED0翻转;KEY1按下,LED1翻转,WKUP按下,蜂鸣器翻转。 图12.3.1. 1程序设计流程图 12.3.2 GPIO功能引脚配置 ...
MX_GPIO_Init(); /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ } } 大家需要注意,STM32CubeMX生成的main.c文件中,有很多地方有“/* USER CODE BEGIN X */”和“/* USER CODE END X */”格式的注释,我们在这些注释的BEGIN和END之间编写代码,那么重新生成工程之后,这些代...