完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是这样初始化的,可以初始化完成以后,定时器3还是用的内部快速时钟,请问应该怎么使用外部低速时钟作为定时器3的时钟???
void System_timer3_Init(void) { CLK_ECKR |= 0x04; while(!(CLK_ECKR 0x08)); CLK_PCKENR1 |= 0x02; SYSCFG_RMPCR2 |= 0x10; TIM3_CR1 = 0x00; TIM3_SMCR |= 0x77; TIM3_ETR = 0xe7; TIM3_EGR |= 0x01; TIM3_CNTRH = 0xff; TIM3_CNTRL = 0x10; TIM3_ARRH = 0xff; TIM3_ARRL = 0x10; TIM3_CR1 |= 0x03; TIM3_IER |= 0x01; } |
|
相关推荐
1个回答
|
|
在STM8L系列微控制器中,要使用外部低速时钟作为定时器3的时钟,您需要进行以下步骤:
1. 首先,确保外部低速时钟已经正确配置并连接到微控制器的相应引脚。 2. 接下来,您需要配置系统时钟以允许使用外部低速时钟作为定时器3的时钟源。在您的代码中,您已经设置了一些寄存器,但是可能需要进行一些调整。以下是修改后的初始化代码: ```c void System_Timer3_Init(void) { // 启用外部低速时钟 CLK_ECKR |= 0x04; // 等待外部低速时钟稳定 while (!(CLK_ECKR & 0x08)); // 允许定时器3时钟 CLK_PCKENR1 |= 0x02; // 配置SYSCFG_RMPCR2寄存器以使用外部低速时钟作为定时器3的时钟源 SYSCFG_RMPCR2 |= 0x10; // 禁用定时器3 TIM3_CR1 = 0x00; // 配置定时器3的SMCR寄存器以使用外部低速时钟 TIM3_SMCR |= 0x77; // 设置定时器3的外部触发输入(ETR) TIM3_ETR = 0xe7; // 重载定时器3的事件以更新寄存器 TIM3_EGR |= 0x01; // 设置定时器3的计数器值 TIM3_CNTRH = 0xff; TIM3_CNTRL = 0xff; // 启用定时器3 TIM3_CR1 |= 0x01; } ``` 3. 在上述代码中,我们使用了`SYSCFG_RMPCR2`寄存器来配置定时器3的时钟源。通过设置`SYSCFG_RMPCR2`寄存器的第4位(值为0x10),我们允许使用外部低速时钟作为定时器3的时钟源。 4. 请注意,您需要根据您的具体硬件配置和需求调整代码中的其他参数,例如定时器3的计数器值、外部触发输入(ETR)等。 5. 最后,确保您的外部低速时钟信号稳定且符合微控制器的要求。如果外部时钟信号不稳定或不符合要求,定时器3可能无法正常工作。 通过以上步骤,您应该可以使用外部低速时钟作为定时器3的时钟。如果仍然遇到问题,请检查您的硬件连接和外部时钟信号,确保它们符合微控制器的要求。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1658 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1571 浏览 1 评论
998 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
695 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1617 浏览 2 评论
1877浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
663浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
529浏览 3评论
547浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
517浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 11:59 , Processed in 0.804643 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号