2585|8

504

帖子

4

TA的资源

纯净的硅(高级)

楼主
 

【ST NUCLEO-U575ZI-Q 测评 】HAL/LL库使用之GPIO-点灯 [复制链接]

前言

前面我们搭建了开发环境,这一篇就从最简单的GPIO点灯开始,体验HAL和LL库的操作。

过程

GPIO

参考手册的《13 General-purpose I/Os (GPIO)》

引脚

从原理图看到引脚PG2和PB7对应LED3和LED2,输出高点亮LED。

 

HAL/LL库

stm32u5xx_hal_gpio.c/h

stm32u5xx_ll_gpio.c/h

 

使用HAL库工程中需要定义宏

USE_HAL_DRIVER

使用LL库工程中需要定义宏

USE_FULL_LL_DRIVER

 

stm32u5xx_hal_conf.h中

#define HAL_GPIO_MODULE_ENABLED宏定义则会包含

对应头文件

#ifdef HAL_GPIO_MODULE_ENABLED

#include "stm32u5xx_hal_gpio.h"

#endif /* HAL_GPIO_MODULE_ENABLED */

stm32u5xx_hal_gpio.c的代码才会编译

 

HAL库只需要包含总的头文件#include "stm32u575xx.h"即可;

LL库需要包含对应的模块头文件#include "stm32u5xx_ll_gpio.h"。

GPIO操作

这里使用LL库。

先要使能对应的时钟要包含头文件#include "stm32u5xx_ll_bus.h"

LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB);

 

我们从对应的头文件即可看到操作接口比如LL库的

ErrorStatus LL_GPIO_DeInit(GPIO_TypeDef *GPIOx);

ErrorStatus LL_GPIO_Init(GPIO_TypeDef *GPIOx, LL_GPIO_InitTypeDef *GPIO_InitStruct);

void        LL_GPIO_StructInit(LL_GPIO_InitTypeDef *GPIO_InitStruct);

 

总的代码如下

#include "stm32u575xx.h"

#include "stm32u5xx_ll_gpio.h"

#include "stm32u5xx_ll_bus.h"

 

void delay(uint32_t t)

{

volatile uint32_t timeout = t;

while(t--);

}

 

int main(void)

{

LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB);

 

LL_GPIO_InitTypeDef GPIO_InitStruct;

//LL_GPIO_StructInit(&GPIO_InitStruct);

GPIO_InitStruct.Pin = LL_GPIO_PIN_7;

GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;

GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;

GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;

GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;

GPIO_InitStruct.Alternate = LL_GPIO_AF_0;

LL_GPIO_Init(GPIOB, &GPIO_InitStruct);

while(1)

{

delay(1000000ul);

LL_GPIO_TogglePin(GPIOB, 1u<<7);

}

}

 

仿真下载,云心可以看到蓝色LED开始闪烁,可以查看GPIO对应的寄存器

 

总结

得益于完善的库,操作外设非常简单高效,这一点STM是做的非常好的。需要注意的是使用外设一定要先使能对应的外设时钟。

此帖出自stm32/stm8论坛

最新回复

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html   详情 回复 发表于 2023-1-12 09:41
点赞 关注
 

回复
举报

7063

帖子

11

TA的资源

版主

沙发
 
我怎么点不亮PG2这个灯。需要特殊的配置吗?
此帖出自stm32/stm8论坛

点评

【ST NUCLEO-U575ZI-Q 测评 】PGIOG端口点灯问题 - stm32/stm8 - 电子工程世界-论坛 (eeworld.com.cn) 需要配置VDDIO2  详情 回复 发表于 2022-12-15 13:44
他这里只点了pb7  详情 回复 发表于 2022-12-15 10:04
 
 

回复

6107

帖子

4

TA的资源

版主

板凳
 
lugl4313820 发表于 2022-12-14 22:28 我怎么点不亮PG2这个灯。需要特殊的配置吗?

他这里只点了pb7

此帖出自stm32/stm8论坛

点评

参见 【ST NUCLEO-U575ZI-Q 测评 】PGIOG端口点灯问题 - stm32/stm8 - 电子工程世界-论坛 (eeworld.com.cn)    详情 回复 发表于 2022-12-15 13:45
恩恩。  详情 回复 发表于 2022-12-15 12:43
 
 

回复

7063

帖子

11

TA的资源

版主

4
 
damiaa 发表于 2022-12-15 10:04 他这里只点了pb7

恩恩。

此帖出自stm32/stm8论坛
 
 
 

回复

504

帖子

4

TA的资源

纯净的硅(高级)

5
 
 

回复

504

帖子

4

TA的资源

纯净的硅(高级)

6
 
 

回复

224

帖子

0

TA的资源

一粒金砂(高级)

7
 

谢谢,学习了

永远的点灯问题,我发现改例程移植FreeRTOS个小程序都搞得够呛

最后发现还是CubeMX里面GPIO MODE和PULLUP,PULLDOWN没配置好

此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

8
 

最近在学习,教程很不错,可以说很用心了


此帖出自stm32/stm8论坛
 
 
 

回复

1万

帖子

203

TA的资源

管理员

9
 

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html

此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表