华芯微特开发论坛

 找回密码
 立即注册
搜索
热搜: SWM341 资料
查看: 2300|回复: 1

【求助】SWM320_CSL 中系统时钟设置不成功?

[复制链接]

1

主题

1

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2024-7-9 15:36:54 | 显示全部楼层 |阅读模式
本帖最后由 Joe7680 于 2024-7-9 15:56 编辑

本问题中的代码来自库 https://gitee.com/synwit-co-ltd/SWM320_Lib.git 中 SimplUART 示例代码,最后更新时间 2024-06-12 13:54:09。

git 库日志

git 库日志


在 system_SWM320.c 中,原代码中定义的宏:
  1. #define SYS_CLK_DIV           SYS_CLK_DIV_1
复制代码
现需对系统时钟 2 分频,遂将此宏改为
  1. #define SYS_CLK_DIV           SYS_CLK_DIV_2
复制代码
重编译下载运行后发现,变量 SystemCoreClock 由原来的 120MHz 改为了 60 MHz,但此时系统的实际运行时钟仍为 120 MHz。

以下是验证的代码截图:

添加以一定时间间隔循环输出 SystemCoreClock 值的代码:

在 SimplUART 基础上修改后的主代码

在 SimplUART 基础上修改后的主代码


原始宏定义(SYS_CLK_DIV = 0):

SYS_CLK_DIV = 0

SYS_CLK_DIV = 0


SYS_CLK_DIV = 0 时的串口输出

SYS_CLK_DIV = 0 时的串口输出

SYS_CLK_DIV = 0 时的串口输出

从上图中可以看出,添加的 for 循环,延时了约 840ms

然后,更改 SYS_CLK_DIV = 1,编译下载运行

SYS_CLK_DIV = 1

SYS_CLK_DIV = 1


SYS_CLK_DIV = 1 时的串口输出

SYS_CLK_DIV = 1 时的串输出

SYS_CLK_DIV = 1 时的串输出


从上图可以看出,添加的 for 循环所产生的延时仍为约 840ms,但此时的 SystemCoreClock 取值改为了 60 MHz,波特率也由之前的 57600 改为了 115200。


请问问题出在哪儿?

回复

使用道具 举报

14

主题

61

帖子

789

积分

超级版主

Rank: 8Rank: 8

积分
789
发表于 2024-7-18 10:16:55 | 显示全部楼层

抱歉,,实测了一下320没有系统时钟二分频功能,,代码中已经删除,,感谢反馈。。
SWM320_Lib: SWM320 外设库 (gitee.com)
QQ截图20240718101516.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|华芯微特开发论坛

GMT+8, 2025-1-10 06:44 , Processed in 0.033096 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表