使用的库选择 三、GPIO使用 主要实现:拉高,拉低,取反,读取 #ifdef defLED1#defineLED1_ON (LL_GPIO_SetOutputPin(LED1_GPIO_Port,LED1_Pin))#defineLED1_OFF (LL_GPIO_ResetOutputPin(LED1_GPIO_Port,LED1_Pin))#defineLED1_RE (LL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin))#defineLED1_IN_STA...
比如说,有一个指令可能是这样的(这里只是举个简单的例子哈):LL_GPIO_SetPinOutput(GPIOA, LL_GPIO_PIN_5, 1); 这个指令,就像是在对针脚说:“GPIOA组的第5号小针脚,你要变成输出状态,而且输出的值是1 ,就像点亮一盏小灯一样亮起来!” 再比如说,如果我们想让小针脚变成另一种状态,就像让刚才亮着的小...
LL_GPIO_SetOutputPin(I2C_SDA_GPIO_Port, I2C_SDA_Pin); /*配置SHT15通讯接口GPIO PA9、PA10 */ GPIO_InitStruct.Pin = I2C_SCL_Pin; GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_...
LL_GPIO_SetPinPull(GPIOA, LL_GPIO_PIN_5, LL_GPIO_PULL_NO); } 4. PA5输出高电平,点亮LED LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_5); 5. 最后需要在主函数中依次调用上诉函数,编译下载运行即可看到Nulceo上的绿色LED被成功点亮了。 int main(void) { SystemClock_Config(); Configure_GPIO();...
设置端口输出高电平:LL_GPIO_SetOutputPin 设置端口输出低电平:LL_GPIO_ResetOutputPin 点亮小灯 在main.c中加入函数**LL_GPIO_ResetOutputPin()**即可点亮LED小灯 由于默认端口输出低电平,不写小灯也亮,我们可以加入函数 **LL_GPIO_SetOutputPin()**使PB0输出高电平,观察小灯是否熄灭 ...
static void SHT_GPIO_Configuration(void) { LL_GPIO_InitTypeDef GPIO_InitStruct; /* 使能GPIO端口时钟 */ LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOB); LL_GPIO_SetOutputPin(I2C_SCL_GPIO_Port, I2C_SCL_Pin); ...
GPIO 初始化 #include"stm32f1xx_ll_gpio.h"voidGPIO_Config(void){LL_GPIO_InitTypeDef GPIO_InitStruct={0};/* 打开 GPIO 时钟 */LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOE);LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC);/*默认输出高电平*/LL_GPIO_SetOutputPin(GPIOC,LL...
__STATIC_INLINE void LL_GPIO_SetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask) { WRITE_REG(GPIOx->BSRR, (PinMask >> GPIO_PIN_MASK_POS) 0x0000FFFFU); } 其中__STATIC_INLINE,就是静态、内联: #define __STATIC_INLINE static __inline ...
return (uint32_t)(READ_REG(GPIOx->ODR));} __STATIC_INLINE void LL_GPIO_SetOutputPin(GPIO_...
GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT; LL_GPIO_Init(GPIOA, &GPIO_InitStruct); // 设置GPIO输出状态 LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_0); 总结:HAL库提供了更高级别的抽象,适合大多数应用场景;LL库提供了更低级别的抽象,适合对性能要求较高的场景。