草帽王子 发表于 2021-5-1 15:49:02

第七十九章:CH32V103应用教程——BKP-上电计数

本帖最后由 草帽王子 于 2021-9-10 18:12 编辑

本章教程主要通过使用后备寄存器(BKP)进行上电计数。


1、BKP简介及相关函数介绍

关于BKP相关介绍,在前面第十六章已经进行过相关介绍,在此不再赘述。更多具体信息,可参考CH32V103应用手册。


2、硬件设计

本章教程使用BKP进行上电计数,无需进行硬件连接。


3、软件设计

本章教程使用BKP进行上电计数,程序较为简单,仅一个主函数,具体程序如下:
main.c文件
/********************************** (C) COPYRIGHT *******************************
* File Name          : main.c
* Author             : WCH
* Version            : V1.0.0
* Date               : 2020/04/30
* Description      : Main program body.
*******************************************************************************/

#include "debug.h"

/*******************************************************************************
* Function Name: main
* Description    : Main program.
* Input          : None
* Return         : None
*******************************************************************************/
int main(void)
{
    unsigned short i = 0;

    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n",SystemCoreClock);

    RCC_APB1PeriphClockCmd( RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE ); //使能PWR时钟和BKP时钟

    PWR_BackupAccessCmd( ENABLE ); //启用对RTC和备份寄存器的访问。

    i=BKP_ReadBackupRegister(BKP_DR1);//读取后备数据寄存器的值
    printf("上电次数%d \r\n",i);
    i++;
    BKP_WriteBackupRegister(BKP_DR1,i); //向后备数据寄存器写入值

    while(1);
}main.c文件主要开启BKP时钟、启用对备份寄存器的访问以及进行计数。


4、下载验证

将编译好的程序下载到开发板并复位,打开串口调试助手,串口打印显示如下,每当开发板重新上电,记一次数:

78、BKP-上电计数.rar

链接:https://pan.baidu.com/s/1JT-QY9ZDxBHaUY1WRcvDcg
提取码:k54f
复制这段内容后打开百度网盘手机App,操作更方便哦



页: [1]
查看完整版本: 第七十九章:CH32V103应用教程——BKP-上电计数