1656|6

429

帖子

3

TA的资源

纯净的硅(高级)

楼主
 

【CW32L052测评】 sysclk延时测试 [复制链接]

 

这篇来学习下CW32L052芯片是sysclk时钟的配置和使用。

 

一、时钟框图

 

芯片能工作的最大时钟是48MHz,这里使用内部48MHz的HSI时钟来配置sysclk。

 

二、程序部分

 

2.1、时钟配置

时钟这部分配置有点奇怪,直接配置使能48MHz的HSI,程序不启动,时钟切换到HSE或LSI,再且回到HSI,可以正常启动运行。

void rcc_config(void)
{
	uint8_t res = 0U;
	RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_FLASH, ENABLE);
	RCC_LSI_Enable( );                                                   //开启外部高速时钟LSI
	res = RCC_SysClk_Switch( RCC_SYSCLKSRC_LSI );                        //切换系统时钟到LSI
	if( res == 0x00 )                                                    //系统时钟切换成功
	{
			RCC_HSI_Disable();                                               //切换时钟到PLL后关闭源时钟HSI
			FirmwareDelay( 400 );   //about 100mS
	}
	
	RCC_HSI_Enable( RCC_HSIOSC_DIV1 );                                   //开启内部高速时钟HSI = HSIOSC / 2
	FLASH_SetLatency(FLASH_Latency_3); 
	res = RCC_SysClk_Switch( RCC_SYSCLKSRC_HSI );                        //切换系统时钟到HSI
	if( res == 0x00 )                                                    //系统时钟切换成功
	{
			RCC_LSI_Disable();                                               //切换时钟到HSI后关闭LSI时钟
			FirmwareDelay( 275000 );  //about 100mS
	}
	
	RCC_HCLKPRS_Config(RCC_HCLK_DIV1);
	
	RCC_HCLK_OUT();                           //通过PA04观察HCLK频率
}

 

2.2、主程序

 

配置sysclk的时钟为48M

InitTick( 48000000 );                  //初始化SysTick

 

int32_t main(void)
{
		GPIO_InitTypeDef GPIO_InitStruct = {0};
		rcc_config();
		init_uart();
	
    InitTick( 48000000 );                  //初始化SysTick

    __RCC_GPIOC_CLK_ENABLE();

    GPIO_InitStruct.IT = GPIO_IT_NONE;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pins = LED_GPIO_PINS;

    GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);

    while (1)
    {
        GPIO_TogglePin(LED_GPIO_PORT, LED_GPIO_PINS);
       // Delay(0xFFFF);
				SysTickDelay(100);
    }
}

 

三、程序运行

 

示波器测试LED2端口PC10,波形如下

延时100ms,测试延时时间是102ms,使用内部时钟有一定的偏差。

最新回复

质量堪忧啊,呵呵   详情 回复 发表于 2023-7-27 16:19
点赞 关注
 
 

回复
举报

1683

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

sysclk延时是编程的基本功,好好测试,主要还是配置

点评

是呀,操作系统的心跳  详情 回复 发表于 2023-7-20 06:35
 
 
 

回复

429

帖子

3

TA的资源

纯净的硅(高级)

板凳
 
火辣西米秀 发表于 2023-7-19 23:05 sysclk延时是编程的基本功,好好测试,主要还是配置

是呀,操作系统的心跳

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 
SYSCLK切换到HSI 48MHz前,FLASH需要配置读等待周期。FLASH_SetLatency(FLASH_Latency_2);;
 
 
 

回复

7514

帖子

18

TA的资源

五彩晶圆(高级)

5
 

用的官方生成的代码吗?

点评

嗯,库是官方的  详情 回复 发表于 2023-7-26 20:11
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

429

帖子

3

TA的资源

纯净的硅(高级)

6
 
freebsder 发表于 2023-7-26 19:15 用的官方生成的代码吗?

嗯,库是官方的

点评

质量堪忧啊,呵呵  详情 回复 发表于 2023-7-27 16:19
 
 
 

回复

7514

帖子

18

TA的资源

五彩晶圆(高级)

7
 
TL-LED 发表于 2023-7-26 20:11 嗯,库是官方的

质量堪忧啊,呵呵

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表