STM32_HAL库_常用函数库

HAL函数库-常用库函数

1. GPIO库

/**
  * @:GPIO初始化
  * @:HAL_GPIO_Init(GPIOA, GPIO_PIN_9)
  */
HAL_GPIO_Init(GPIO_TypeDef  *GPIOx, GPIO_InitTypeDef *GPIO_Init)

/**
  * @:GPIO反初始化
  * @:HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9)
  */
HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx
### 使用HAL获取STM32微控制器平台上的当前时间 对于基于STM32的微控制器,在使用HAL的情况下,可以通过配置RTC(实时时钟)模块来获得当前的时间。这通常涉及到初始化RTC并读取其寄存器中的值。 为了实现这一点,首先需要确保已经启用了外部晶振用于RTC时基,并且在项目中包含了必要的头文件: ```c #include "stm32f4xx_hal.h" ``` 接着定义一个`RTC_HandleTypeDef`类型的句柄变量以便后续调用API函数操作RTC硬件资源[^1]。 下面是一个简单的例子展示如何设置RTC以及获取当前时间: ```c // 定义RTC句柄结构体实例 RTC_HandleTypeDef hrtc; void SystemClock_Config(void); static void MX_RTC_Init(void); int main(void) { // 初始化所有外设, Flash接口, Systick等. HAL_Init(); // 配置系统时钟 SystemClock_Config(); // RTC初始化 MX_RTC_Init(); while (1) { // 主循环内可以放置其他代码 // 获取当前时间逻辑可放在此处 RTC_TimeTypeDef sTime; RTC_DateTypeDef DateToUpdate; if(HAL_OK == HAL_RTC_GetTime(&hrtc, &sTime, FORMAT_BIN)) { /* 处理成功获取到的时间 */ printf("Current Time: %02d:%02d:%02d\n", sTime.Hours, sTime.Minutes, sTime.Seconds); } if(HAL_OK == HAL_RTC_GetDate(&hrtc, &DateToUpdate, FORMAT_BIN)) { /* 显示日期信息 */ printf("Current Date: %02d/%02d/20%02d\n", DateToUpdate.Month, DateToUpdate.Date, DateToUpdate.Year); } HAL_Delay(1000); // 延迟一秒再更新显示 } } /** * @brief RTC MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * @param hrtc: RTC handle pointer * @retval None */ static void MX_RTC_Init(void) { __HAL_RCC_BKP_CLK_ENABLE(); // 启用备份区域访问权限 __HAL_RCC_PWR_CLK_ENABLE(); // 开启电源控制时钟 /**Initialize peripherals and GPIOs**/ hrtc.Instance = RTC; // 设置RTC实例 hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND; // 自动预分频达到每秒中断一次的效果 hrtc.Init.OutPut = RTC_OUTPUTSOURCE_ALARM; // 输出源选择为闹钟事件触发 if (HAL_RTC_Init(&hrtc) != HAL_OK) { Error_Handler(__FILE__, __LINE__); // 如果初始化失败则进入错误处理程序 } } ``` 上述代码展示了基本框架下怎样通过HAL去初始化RTC组件并且周期性的打印出当前时间和日期。需要注意的是实际应用环境中还需要考虑更多细节比如闰年支持、夏令时调整等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_755682240

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值