【沁恒蓝牙mesh】CH58x 将RTC时钟切换为LSE外部低速时钟

本文主要记录了【沁恒蓝牙mesh】CH58x 如何将RTC时钟切换为外部时钟

  • 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎
  • 📝 个人主页:欢迎访问我的 Ethernet_Comm 博客主页🔥
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝
  • 📣 系列专栏:沁恒蓝牙mesh二次开发
    🍁
  • 💬格言:写文档啊不是写文章,重要的还是直白!🔥

1. 硬件设计

  • ·X32MO X32MI引脚外接32M时钟,作为MCU系统运行的高速时钟
  • PA11 PA10引脚外接 32.768K 时钟

关于 CH58X·时钟计算可参考我的博文:
【沁恒蓝牙mesh】CH58x系统时钟配置与计算
在这里插入图片描述

2. 软件配置

软件默认使用的是 系统内部时钟

void HAL_TimeInit(void)
{
#if(CLK_OSC32K)sys_safe_access_enable();R8_CK32K_CONFIG &= ~(RB_CLK_OSC32K_XT | RB_CLK_XT32K_PON);sys_safe_access_enable();R8_CK32K_CONFIG |= RB_CLK_INT32K_PON;sys_safe_access_disable();Lib_Calibration_LSI();
#elsesys_safe_access_enable();R8_CK32K_CONFIG |= RB_CLK_OSC32K_XT | RB_CLK_INT32K_PON | RB_CLK_XT32K_PON;sys_safe_access_disable();
#endifRTC_InitTime(2020, 1, 1, 0, 0, 0); //RTC时钟初始化当前时间TMOS_TimerInit(0);
}

3. 切换RTC时钟为LSE外部时钟

配置流程参考官方手册:
在这里插入图片描述

// 首先不要将PA10 PA11引脚配置为输出
sys_safe_access_enable();
//                    切换LSE           内部32K使能                开启外部晶振         
R8_CK32K_CONFIG |= RB_CLK_OSC32K_XT | RB_CLK_INT32K_PON |     RB_CLK_XT32K_PON;
sys_safe_access_enable();
R16_CLK_SYS_CFG |= RB_CLK_SYS_MOD;   // 32k 作为 HCLK
sys_safe_access_disable();
#include "CH58x_common.h"void DebugInit(void)
{GPIOA_SetBits(GPIO_Pin_9);GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);UART1_DefInit();
}
__HIGH_CODE
void test1(void){
//外部32K,需要屏蔽PA10/PA11的IO翻转(32K晶振引脚)sys_safe_access_enable();R8_CK32K_CONFIG |= RB_CLK_OSC32K_XT | RB_CLK_INT32K_PON | RB_CLK_XT32K_PON;sys_safe_access_enable();R16_CLK_SYS_CFG |= RB_CLK_SYS_MOD;sys_safe_access_disable();
}__HIGH_CODE
int main()
{uint8_t      i;SetSysClock(CLK_SOURCE_PLL_60MHz);GPIOB_ModeCfg(GPIO_Pin_4,  GPIO_ModeOut_PP_5mA);   //设置模式 输出GPIOB_SetBits(GPIO_Pin_4);//GPIOA_ModeCfg(GPIO_Pin_10 | GPIO_Pin_11,  GPIO_ModeOut_PP_5mA); //设置模式 输出,验证内部32k作为主频时,外部32k是不工作的。//GPIOA_ResetBits(GPIO_Pin_10);//GPIOA_SetBits(GPIO_Pin_11);mDelaymS(3000);     //等待60M稳定test1();while(1);
}

参考:

CH573F 使用LSI时如何关闭外部晶振

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/181307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实测有效的 8 个顶级Android 数据恢复工具

由于我们现在生活在一个依赖数字数据的时代,当重要文件从我们的 Android 手机中消失时,这将是一场数字噩梦。如果您没有预先备份Android手机上的数据或未能通过备份找到已删除的数据,那么选择最好的Android数据恢复软件是最佳选择。 因此&am…

苹果提醒事项怎么用?几个简单步骤就能学会!

苹果提醒事项可以帮助你轻松管理待办事项,让你更好地安排自己的时间和工作。但是,有些小伙伴可能对如何使用这个功能还有一些疑问。苹果提醒事项怎么用?不要担心,小编将为大家提供使用提醒事项的方法,帮助你学会如何使…

Nginx系列-正向代理和反向代理

Nginx系列-正向代理和反向代理 文章目录 Nginx系列-正向代理和反向代理1. 三个对象2. 两种场景代理2.1. 正向代理2.2. 反向代理 3. 两种场景的对比3.1 为什么叫做反向代理3.2 正向代理和反向代理的作用 1. 三个对象 客户端:发出请求到代理,并接收代理的…

Android : Fragment 传递数据 — 简单应用

示例图: 创建 Fragment new -> Fragment -> Fragment(Blank) MainActivity.java package com.example.fragmentdemo;import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentManager; import andro…

C语言每日一题(41)循环队列

力扣 622 循环队列 题目描述 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前…

5W2H分析法

5W2H分析法 5W2H分析法又叫七问分析法。 模型介绍 简单、方便,易于操作的思考(框架)模型,问题分析模型,它可以帮助我们保证思考的严谨与全面,也能给人启发,有着广泛的应用: 提问-可…

AndroidNDK开发之交叉编译

在Android studio2.2以及以上,构建原生库的默认工具是cmake。 CMake是一个跨平台的构建工具,可以使用简单的语句来描述所有平台的安装(编译过程)。 能够输出各种各样的makefile或者project文件。cmake并不直接构建出最终的软件,而是产生其他工…

Web学习笔记

Web学习笔记 flask库前端基础超链接:空连接:图片:视频(音频):嵌套使用列表表格格式化表格input表单系列 网络请求GET方式POST请求通过GET方式获取输入参数通过POST方式获取输入参数注册页面 CSS三种使用方式…

MYSQL存储

注意: 1.如果没有指定的SESSION/GLOBAL,默认是SESSION,会话变量。 2.mysql服务重新启动之后,所设置的全局参数会失效,要想不失效,可以在/etc/my.cnf中配置。 变量 用户定义变量是用户根据需要自己定义变量…

Redis队列stream,Redis多线程详解

Redis 目前最新版本为 Redis-6.2.6 ,会以 CentOS7 下 Redis-6.2.4 版本进行讲解。 下载地址: https://redis.io/download 安装运行 Redis 很简单,在 Linux 下执行上面的 4 条命令即可 ,同时前面的 课程已经有完整的视…

《尚品甄选》:后台系统——权限管理之分类和品牌管理,使用EasyExcel导入导出数据(debug一遍)

文章目录 一、分类管理1.1 表结构介绍1.2 分类列表查询 二、EasyExcel使用2.1 EasyExcel简介2.2 导出功能2.3 导入功能 三、品牌管理3.1 表结构介绍3.2 列表查询3.3 添加品牌3.4 修改品牌3.5 删除品牌 一、分类管理 分类管理就是对商品的分类数据进行维护。 1.1 表结构介绍 分…

缺省参数的声明和定义

首先,函数缺省参数不能同时出现在声明和定义中,如出现则报错: 声明和定义中同时出现缺省参数 ctrlb,编译报错,提示 “test":重定义默认参数:参数1 编译报错 当函数的声明和定义中都出现…

第10关:基数排序

任务要求参考答案问答98 任务描述相关知识 基数排序算法编程要求测试说明 任务描述 本关任务:实现基数排序算法,并将乱序数列变成升序。 相关知识 为了完成本关任务,你需要掌握:1.基数排序算法。 基数排序算法 基数排序是按…

Node.js下载安装教程

一、下载安装包 1、百度网盘自提链接: 链接:https://pan.baidu.com/s/1Bbw895MtUgjlfZylPHCCxw 提取码:x89v 2、进入官网下载 https://nodejs.org/zh-cn/download/ 选择对应版本,我这里选的windows64位版本 二、安装程序 1、…

使用shell快速查看电脑曾经连接过的WiFi密码

此方法只能查看以前连接过的wifi名称和对应的密码 查看连接过的WiFi名称netsh wlan show profiles查看具体的WiFi名称netsh wlan show profile name"你的wifi名称" keyclear

vivado综合分析与收敛技巧1

使用细化视图对 RTL 进行最优化 完成任意实现步骤后使用 report_timing 、 report_timing_summary 或 report_design_analysis 分析时序结果时, 您必须审查关键路径结构 , 了解是否可通过修改 RTL 、使用综合属性或者使用其他综合选项来更有效地将…

LeetCode.24两两交换链表中的节点

LeetCode.24两两交换链表中的节点 1.问题描述2.解题思路3.代码 1.问题描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示…

雷达公式实现(matlab)

雷达公式实现 代码来源:《雷达系统分析与设计(MATLAB版)(第三版)》 function [snr] radar_eq(pt,freq,g,sigma,b,nf,loss,range) % This program implements Eq.(1.63) %% Inputs:% pt——峰值功率,W% freq——雷达中心频率,Hz% g——天线…

IntelliJ IDEA 中有什么让你相见恨晚的技巧

一、条件断点 循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。 参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可&…

AI旅游:旅游行业的人工智能成熟艺术适应从实践到表现报告

今天分享的是AI系列深度研究报告:《AI旅游:旅游行业的人工智能成熟艺术适应从实践到表现报告》。 (报告出品方:accenture) 报告共计:25页 旅行还没有充分利用AI所能做的一 而旅游业比两年前强多了。公司…