STM32L051上手记录

LPTIM Source MUX更换时钟源要重新全部断电再上电才会生效,坑了我2个小时

LPTIM1不能在standby模式下唤醒,坑了我一天,要用闹钟AlarmA唤醒

HAL_LPTIM_TimeOut_Start_IT(&hlptim1, Period, Timeout);

Period 每隔多久执行一次 实际的值应该填写   

Timeout 第一次什么时候执行

这两个值的计算公示如下

外部时钟LSE的话     时钟源频率(32768)  / 分频值 (LPTIM_PRESCALER_DIV16) * 秒数

内部时钟LSI的话     时钟源频率(37000)  / 分频值 (LPTIM_PRESCALER_DIV16) * 秒数


系统唤醒之后要重新配置系统时钟,否则默认使用HSI时钟信号,会变慢

void reInitSystem(){
    //重新配置系统时钟
    SystemClock_Config();
    
    //初始化串口
    MX_USART1_UART_Init();
    MX_USART2_UART_Init();
    
    //清楚唤醒标记
    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
    __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG();
    //禁用
    HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);
}

休眠之前需要操作

void prepareLowPowerMode(){
    //进入低功耗模式
    HAL_PWREx_EnableUltraLowPower();
    HAL_PWREx_EnableFastWakeUp();
    //关掉led灯
    HAL_GPIO_WritePin(LED_RUN_GPIO_Port, LED_RUN_Pin, GPIO_PIN_SET);
    //等串口的信息发完再关闭串口
    osDelay(1);
    //串口关闭
    HAL_UART_DeInit(&huart2);
    HAL_UART_DeInit(&huart2);
}

窗口看门狗wwdg的操作

在时钟图上增加分频,否则看门狗最大的8分频,时间范围也仅仅是0ms~12ms(试出来的),每增加一倍分频,这个时间扩大一倍,最大可以达到16分频,也就是说0ms~192ms,我还是不懂怎么算

HAL_RTC_AlarmAEventCallback 关于Alarm跨天的问题,真奇葩到家了,必须设置时间的时候加上这两行,才能设置跨天的闹钟

        time.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
        time.StoreOperation = RTC_STOREOPERATION_RESET;
        HAL_RTC_SetTime(&hrtc, &time, RTC_DATA_FORMAT);

否则跨天的Alarm执行不执行是随机的,有人能解释一下吗?

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32L051是STMicroelectronics推出的一款低功耗微控制器系列,它采用了ARM Cortex-M0+内核,具有丰富的外设和强大的性能。在STM32L051系列中有许多不同的例程可供开发者参考和使用。 STM32L051例程提供了一系列示例代码,以帮助开发者快速上手并了解如何使用STM32L051的各种功能。这些例程涵盖了多个应用领域,包括通信、数据存储、传感器接口和电源管理等。 通信方面,STM32L051例程包含了如UART、SPI、I2C和CAN等常用通信协议的示例代码,开发者可以根据自己的需要进行二次开发和定制。 数据存储方面,STM32L051例程提供了Flash和EEPROM存储器的读写示例代码,开发者可以利用这些代码实现数据的存储和读取。 传感器接口方面,STM32L051例程包含了各种传感器的接口代码,例如温度传感器、加速度传感器和陀螺仪等。开发者可以直接使用这些代码来与传感器进行通信和数据获取。 电源管理方面,STM32L051例程提供了低功耗模式的示例代码,开发者可以根据自己的需求进行调整,以实现更长的电池寿命。 总之,STM32L051例程为开发者提供了丰富的参考和指导,帮助他们快速上手并实现自己的项目。无论是初学者还是有经验的开发者,都可以从这些例程中受益,并更好地利用STM32L051系列微控制器的功能和性能。 ### 回答2: STM32L051是STMicroelectronics推出的一款低功耗微控制器。它采用ARM Cortex-M0+内核,工作频率高达32MHz,内置64KB闪存和8KB SRAM。其主要特点是低功耗和丰富的外设功能,适用于电池供电和电池备份系统。 STM32L051的例程是为了帮助开发者快速上手和熟悉该系列微控制器的开发而提供的示例代码。这些例程涵盖了各种基础功能和外设的使用,方便开发者参考和学习。 例如,例程中可能包含了GPIO(通用输入输出)的配置和使用、定时器的配置和使用、串口通信的配置和使用等。通过这些例程,开发者可以学习如何初始化和配置硬件外设,并了解如何编写代码来实现各种功能。 除了基础的外设使用,STM32L051的例程还可能包含其他高级功能的使用示例,比如中断处理、低功耗模式的使用、定时器中断的配置等。这些高级功能可以帮助开发者更好地利用微控制器的性能和特点,设计出更加高效和创新的应用。 总之,STM32L051的例程为开发者提供了一个学习和参考的平台,通过学习这些例程,开发者可以更好地理解和使用STM32L051微控制器,将其应用到各种不同的项目中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值