HAL库(Hardware Abstraction Layer)函数实现: GPIO_InitTypeDefGPIO_InitStruct={0};// 使能时钟__HAL_RCC_GPIOB_CLK_ENABLE();// 配置结构体GPIO_InitStruct.Pin=GPIO_PIN_6;// 设置GPIO端口号为6GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;// 设置端口输出模式为推挽输出GPIO_InitStruct.Pull=GPIO_NOPULL;...
GPIO_PIN_0);HAL_Delay(500);HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_6);HAL_Delay(500);HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_6);HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_7);HAL_Delay(500);HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_7); ...
GPIO_SetBits(GPIOG,GPIO_Pin_6|GPIO_Pin_7); } 当然啦,上述代码包含了时钟的使能。 通过对时钟和GPIO的分析,我想大家已经对固件的逻辑有了一定的认识,从本质上讲,都是在配置寄存器,只是地址和值不同罢了,而固件库就是对寄存器配置的封装,便于开发者调用。 当然啦,本文是基于标准库分析,HAL库的逻辑也是一样...
1. 直接操作寄存器:通过使用寄存器来设置或清除GPIO引脚的输出状态。例如,通过直接设置GPIO输出寄存器的某一位,可以控制对应的GPIO引脚输出高电平或低电平。2. 使用库函数:利用库函数来设置GPIO引脚的输出状态。例如,通过STM32标准外设库中的GPIO_Init函数初始化GPIO引脚,并调用GPIO_SetBits和GPIO_Reset...
下面将根据库函数对MM32L0xx的GPIO配置,首先来看一下GPIO_Init函数的原型void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)。这个函数的实现是在HAL_gpio.h文件中,若要使用该函数在相应的应用程序的前面包含HAL_gpio.h头文件。
上面几种模式中,内部的施密特触发器都是打开的。2.3模拟输入 这时候,上拉和下拉开关是打开的,施密特...
MM32F0010是基于ARM Cortex M0核的32位微控制器(MCU)即32位的单片机,使用库函数开发,每一个片上外设都有与之对应的外设xx.c和xx.h库函数,例如:hal_rcc.c和hal_rcc.h,hal_gpio.c和hal_gpio.h等,针对外设初的初始化工程师即可参考外设对应的库函数外xx.c和外设xx.h文件。不知道大家每接触一款新的ARM ...
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 参数: GPIOx - 初始化哪一组GPIO(GPIOF) GPIO_Pin - 哪个脚 (2)时钟使能库函数 void RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState) ...
1){GPIO_ResetBits(GPIOB,GPIO_Pin_12);//响Delay_ms(500);GPIO_SetBits(GPIOB,GPIO_Pin_...