赞
踩
本次实验分享的是合泰HT32F52352中的基本定时器BFTM的使用,通过定时器实现LED的1s闪烁
在合泰HT32F52352系统中一共有5种定时器
实验效果
ht32定时器
了解HT32F52352单片机内核特性
1、马达控制定时器 – MCTM
2、PWM 产生和捕捉定时器 – GPTM
3、单通道产生与捕捉定时器 – SCTM
4、基本功能定时器 – BFTM
5、看门狗定时器 – WDT
time.c
#include "time.h" #include "led.h" #include "uart.h" uint16_t count = 0; //计时 uint8_t led_flag = 0; //led进行翻转标志 void Timer_Init(void) { CKCU_PeripClockConfig_TypeDef CKCUClock= {{0}}; CKCUClock.Bit.BFTM1 = 1; //开启中断时钟 CKCU_PeripClockConfig(CKCUClock, ENABLE); NVIC_EnableIRQ(BFTM1_IRQn); BFTM_SetCounter(HT_BFTM1, 0); //BFTM_SetCompare(HT_BFTM1, SystemCoreClock);//定时1s产生中断 BFTM_SetCompare(HT_BFTM1, SystemCoreClock/1000);//定时1ms产生中断 BFTM_IntConfig(HT_BFTM1, ENABLE);//使能中断 BFTM_EnaCmd(HT_BFTM1, ENABLE);//使能BFTM } void BFTM1_IRQHandler(void) { if(BFTM_GetFlagStatus(HT_BFTM1) != RESET ) { count++; if(count == 1000) //1s { printf("-------------LED 1S FLASH TEST------------\n"); count = 0; if(led_flag == 0) { LED1_ON(); led_flag = 1; } else if(led_flag == 1) { led_flag = 0; LED1_OFF(); } } BFTM_ClearFlag(HT_BFTM1);//清除中断标志 } }
time.h
#ifndef _TIME_H_
#define _TIME_H_
#include "ht32f5xxxx_bftm.h"
void Timer_Init(void);
#endif
main.c
#include "ht32.h" #include "ht32_board.h" #include "led.h" #include "delay.h" #include "uart.h" #include "time.h" /**********************TH32 定时器闪烁点灯********************** Author:小殷 Date:2022-4-21 ***************************************************************/ int main() { Led_Init(); Timer_Init(); USARTx_Init(); printf("---------Time Test------\n"); while(1) { } }
对系统时钟进行分析
我们点击SystemCoreClock进行跳转,然后去将每个参数记录下来
32-bit ARM® CortexTM-M0+ 处理器内核 高达 48MHz 的工作频率 系统时钟分析 //我们从下往上推会发现这里的系统时钟最终为48Mhz 也是该系统的最大时钟 SystemCoreClock = __CK_AHB __CK_AHB (__CK_SYS >> HCLK_DIV) //48Mhz 1分频相当于没变 HCLK_DIV (0) /*!< 0: DIV1, 1: DIV2, 2: DIV4, 3: DIV8, 4: DIV16, 5: DIV32 _CK_SYS __CK_PLL __CK_PLL (__CK_VCO >> PLL_NO2_DIV) //48Mhz 一分频 相当于没变 PLL_NO2_DIV (0) /*!< 0: DIV1, 1: DIV2, 2: DIV4, 3: DIV8 __CK_VCO (HSE_VALUE * PLL_NF2_DIV) //8000000*6 = 48Mhz HSE_VALUE 8000000UL PLL_NF2_DIV (6) /*!< 1~16: DIV1~DIV16
以上就是对HT32F52352通用定时器的基本使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。