多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

HS32F0033的Time10配置

HS32F0033的Time10配置 最近调试小控制器用到华芯的MCUHS32F0033奇怪的是在官网上查不到这颗料的信息。不过百度文心可以查的到HS32F0033是苏州华芯微电子推出的一款基于ARM Cortex-M0内核的32位微控制器最高运行主频可达24MHz是面向工业控制、消费电子等场景的高性价比通用MCU。 核心硬件规格 ‌内核性能‌搭载ARM Cortex-M0内核内置单周期32位硬件乘法器集成24位系统定时器支持低功耗睡眠模式。 ‌存储配置‌内置32KB嵌入式Flash带擦写保护功能、4KB SRAM同时自带16字节芯片唯一ID。 ‌供电特性‌支持2.5V~5.5V超宽工作电压适配多种供电场景。 ‌工作环境‌工作温度范围覆盖-40℃~85℃满足工业级应用要求。 外设资源配置 ‌定时器‌包含1路16位高级控制定时器支持4通道PWM输出、3路互补输出、死区生成与紧急停止、1路16位通用定时器、1路16位可编程定时器阵列、2路基础定时器、1路低功耗定时器同时集成独立看门狗和窗口看门狗。 ‌模拟外设‌配备7通道12位1Msps SAR型ADC集成电压比较器和可配置中断/复位的低电压检测器。 ‌通信接口‌拥有2路标准UART、1路超低功耗UART、1路最高8Mbps的SPI、1路最高1Mbps的I2C还支持One-Wire单总线接口。 ‌其他功能‌集成带万年历和闹钟唤醒功能的RTC、硬件CRC-16模块、蜂鸣器频率发生器20引脚封装下可引出16个通用IO。 封装与开发支持 ‌封装形式‌提供TSSOP-206.5×4.4mm和QFN-203×3mm两种封装选项。 ‌开发支持‌支持SWD串行调试配套在系统编程ISP方案提供全功能嵌入式调试解决方案。10和Timer11是基本定时器与和配置不同最大的坑是预分频。的配置void BSP_Timer2_Init(void) { __HAL_RCC_TIM2_CLK_ENABLE(); /* Compute the prescaler value to have TIMx counter clock equal to 10000 Hz */ uwPrescalerValue (uint32_t)(HAL_RCC_GetPCLKFreq() / TIM2_FREQ) - 1; sTim2Handle.Instance TIM2; sTim2Handle.Init.Period TIM2_PERIOD; sTim2Handle.Init.Prescaler 0;//uwPrescalerValue; sTim2Handle.Init.ClockDivision 0; sTim2Handle.Init.CounterMode TIM_COUNTERMODE_UP; // TIM_COUNTERMODE_DOWN sTim2Handle.Init.RepetitionCounter 0; sTim2Handle.Init.AutoReloadPreload TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(sTim2Handle) ! HAL_OK) { /* Initialization Error */ Error_Handler(); } HAL_NVIC_EnableIRQ(TIM2_IRQn); /*##-2- Start the TIM Base generation in interrupt mode ####################*/ if (HAL_TIM_Base_Start_IT(sTim2Handle) ! HAL_OK) { /* Starting Error */ Error_Handler(); } }预分频是如果则预分频为但是10不同#define TIM10_FREQ 1000000 //1000us #define TIM10_PERIOD (1000-1) static uint32_t uwPrescalerValue; BASETIM_HandleTypeDef sTim10Handle {0}; void BSP_Timer10_Init(void) { __HAL_RCC_BASETIM_CLK_ENABLE(); uwPrescalerValue (uint32_t)(HAL_RCC_GetPCLKFreq() / TIM10_FREQ) - 1; sTim10Handle.Instance TIM10; sTim10Handle.Init.GateEnable BASETIM_GATE_DISABLE; sTim10Handle.Init.GateLevel BASETIM_GATELEVEL_LOW; sTim10Handle.Init.TogEnable BASETIM_TOG_DISABLE; sTim10Handle.Init.CntTimSel BASETIM_TIMER_SELECT;//BASETIM_COUNTER_SELECT; sTim10Handle.Init.AutoReload BASETIM_AUTORELOAD_ENABLE;//BASETIM_AUTORELOAD_DISABLE; sTim10Handle.Init.MaxCntLevel BASETIM_MAXCNTLEVEL_16BIT; sTim10Handle.Init.OneShot BASETIM_REPEAT_MODE;//BASETIM_ONESHOT_MODE; sTim10Handle.Init.Prescaler 7;//uwPrescalerValue; sTim10Handle.Init.Period 0xffff-TIM10_PERIOD; if (HAL_BASETIM_Base_Init(sTim10Handle) ! HAL_OK) { /* Initialization Error */ Error_Handler(); } HAL_NVIC_SetPriority(TIM10_IRQn, 3); // 设置优先级根据实际中断号修改 HAL_NVIC_EnableIRQ(TIM10_IRQn); /*##-2- Start the TIM Base generation in interrupt mode ####################*/ if (HAL_BASETIM_Base_Start_IT(sTim10Handle) ! HAL_OK) { /* Starting Error */ Error_Handler(); } }则预分频为7则预分频为128。要查看寄存器才知道。
返回列表