首页 > 编程语言 >关于STM32Cube_FW_F1_V1.8.0内的example顶层程序设计逻辑 与 RTC_Calendar增补

关于STM32Cube_FW_F1_V1.8.0内的example顶层程序设计逻辑 与 RTC_Calendar增补

时间:2023-05-19 18:33:49浏览次数:49  
标签:__ F1 HAL RTC FW PWR Calendar RCC

 Examples内程序结构

STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Examples内程序结构分析如下:

使用外设XXX

向工程添加 stm32f10x_XXX.c

修改 stm32f10x_conf.h 

在stm32f1xx_hal_msp.c中写  外设XXX写初始化程序

在stm32f1xx_it.c中写 中断服务程序

在main.c中写 配置程序、功能程序。

实时时钟RTC_Calendar增补

在STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Examples\RTC\RTC_Calendar

修改 stm32f1xx_hal_msp.c内  void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc) 函数

void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
{
  RCC_OscInitTypeDef        RCC_OscInitStruct;
  RCC_PeriphCLKInitTypeDef  PeriphClkInitStruct;

  /*##-1- Enables the PWR Clock and Enables access to the backup domain ###################################*/
  /* To change the source clock of the RTC feature (LSE, LSI), You have to:
     - Enable the power clock using __HAL_RCC_PWR_CLK_ENABLE()
     - Enable write access using HAL_PWR_EnableBkUpAccess() function before to 
       configure the RTC clock source (to be done once after reset).
     - Reset the Back up Domain using __HAL_RCC_BACKUPRESET_FORCE() and 
       __HAL_RCC_BACKUPRESET_RELEASE().
     - Configure the needed RTc clock source */
  __HAL_RCC_PWR_CLK_ENABLE();
  HAL_PWR_EnableBkUpAccess();
  
  /* Enable BKP CLK for backup registers */
  __HAL_RCC_BKP_CLK_ENABLE();
     
   __HAL_RCC_RTC_ENABLE();// 补上开RTC工作时钟

修改 main.c文件 main()内代码

  /*##-1- Configure the RTC peripheral #######################################*/
  /* Configure RTC prescaler and RTC data registers */
  /* RTC configured as follow:
      - Asynch Prediv  = Calculated automatically by HAL */
  RtcHandle.Instance = RTC; 
  RtcHandle.Init.AsynchPrediv = RTC_AUTO_1_SECOND;

  if (HAL_RTC_Init(&RtcHandle) != HAL_OK)
  {
    /* Initialization Error */
    Error_Handler();
  }

  /*##-2- Check if Data stored in BackUp register1: No Need to reconfigure RTC#*/
  /* Read the Back Up Register 1 Data */
    RTC_CalendarConfig();                                     //增加此处,用于调试时修改时间。
  if (HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1) != 0x32F2)//RTC有电池时,将不能第二次修改时间
  {
    /* Configure RTC Calendar */
    RTC_CalendarConfig();
  }
  else
  {
    /* Check if the Power On Reset flag is set */
    if (__HAL_RCC_GET_FLAG(RCC_FLAG_PORRST) != RESET)
    {
      /* Turn on LED2: Power on reset occurred */
      BSP_LED_On(LED2);
    }
    /* Check if Pin Reset flag is set */
    if (__HAL_RCC_GET_FLAG(RCC_FLAG_PINRST) != RESET)
    {
      /* Turn on LED4: External reset occurred */
      BSP_LED_On(LED4);
    }
    /* Clear source Reset Flag */
    __HAL_RCC_CLEAR_RESET_FLAGS();
  }

 

标签:__,F1,HAL,RTC,FW,PWR,Calendar,RCC
From: https://www.cnblogs.com/excellentHellen/p/17415021.html

相关文章

  • CF1512C A-B Palindrome 题解
    CF1512CA-BPalindrome题解Link洛谷CodeforcesDescription给出\(T\)个只由0、1和?组成的字符串\(s\),将字符串中的?替换成0或1之后形成一个回文串并且恰好有\(a\)个0和\(b\)个1,无解输出-1。Solution首先,若不考虑?原串不为回文串一定无解,输出-1即......
  • CF1512D Corrupted Array 题解
    CF1512DCorruptedArray题解Link洛谷CodeforcesDescription给定一个正整数\(n\)和长度为\(n+2\)的数组\(b\),数组\(b\)是依据如下算法构造的:随机生成一个含有\(n\)个元素的原始数组\(a\);把数组\(a\)赋值给数组\(b\),即\(b_i=a_i(1\lei\len)\);数组\(b\)......
  • 「CF1718E」Impressionism
    题目点这里看题目。Burenka有两张图片$a$和$b$,它们的大小可以表示为$n\timesm$的像素组合。每幅画的每个像素都有一个颜色——表示为一个从$0$到\(2\times10^5\)的数字,并且在两幅画的每一行或每一列中都没有重复的颜色,除了颜色$0$。Burenka想把图片\(......
  • PB6接SCL,PB7接SDA,IIC通信访问 24C02, STM32F103的HAL版本
    在野火霸道板子上,已有at24c02,256个字节。/*测试代码*/staticuint8_tflag;uint8_tdata_w[]={1,2,3,4,5};uint8_tdata_r[5]={0};AT24CXX_Init();//初始化IIC接口flag=AT24CXX_Check();//检查器件if(flag==0){u16Writ......
  • CF1077E Thematic Contests 题解
    ThematicContests题意有\(n\)个问题,每个问题有一个分类\(a_i\)。现在要举办一些比赛,要求:一场比赛中所有题目的分类相同。所有比赛的分类是互不相同的。第一场比赛的题目数量任意,但从第二场开始,每一场比赛的题目数量都必须是前一场的两倍。求所有比赛的题目数量之和的......
  • CF1183C Computer Game 题解
    ComputerGame还算水的一道题。题意本题意为题面直接翻译的简化版,可能会比题目翻译要复杂。有\(q\)次询问,每次给出四个数,表示一开始的电亮为\(k\),有\(n\)个回合,不插电玩一个回合则电量会减少\(a\),插电玩一个回合则电量会减少\(b\),电量在任何时刻都必须严格大于\(0\)......
  • 基于stm32F103C8的集尘风机电源设计 包含原理图和PCB及代码单片
    基于stm32F103C8的集尘风机电源设计包含原理图和PCB及代码单片机需要在检测到过零点后再进行PWM控制。1.提供PADS和allegro板工程文件。2.提供关键元器件手册。4.支持1000W到3000W大功率。ID:77169615872431469......
  • STM32F107单片机驱动Dp83848以太网芯片程序 项目开发用到了Dp83848
    STM32F107单片机驱动Dp83848以太网芯片程序项目开发用到了Dp83848这一个以太网芯片,本人发现其配置起来比较麻烦,所以整理了一份STM32F107单片机驱动Dp83848的程序代码例程,方便大家学习相关代码的配置ID:3821630931468138......
  • 【CF1012E】【LOJ2818】Cycle Sort(并查集)
    Description给定一个⻓为nn的数列,你可以多次进行如下操作:选定kk个不同的下标i1,i2…iki1,i2......
  • 关于STM32F103VET6移植LVGL问题记录
    MCU:STM32F103VET6编译器:Keil5前言:打算学习一下LVGL,因此在自己打样的开发板上移植LVGL源码,其中出现了几种错误情况,在此记录一下,也可以提供给各位参考。 一、编译空间不足.........\Objects\Template.axf:Error:L6406E:Nospaceinexecutionregionswith.ANYselector......