【经验】32位MCU CS32L010定时器实现输入信号捕获功能程序的分析
芯海科技的32位MCU CS32L010采用Cortex-M0内核,具有良好的低功耗特性与丰富的外设功能。芯片集成的定时器功能带有PWM输出及输入信号捕获功能,下面就分析一下CS32L010 SDK中提供的输入信号捕获功能的程序。
为了便于在开发板上实现输入信号的捕获功能,程序中使用CS32L010的低功耗定时器输出一个1KHz频率信号,输出的信号通过外部的引脚接到定时器1的输入引脚对1KHz信号进行捕获并计算信号的频率。
下面的代码是初始化低功耗定时器的输出功能:
sLpTimHandle.Instance = LPTIMx; //设置初始化的定时器为低功耗定时器
sLpTimHandle.Init.ClkSel = LPTIM_CLOCK_SOURCE_PCLK;//选择定时器的时钟源
sLpTimHandle.Init.CntTimSel = LPTIM_TIMER_SELECT;//设置为定时器模式
sLpTimHandle.Init.AutoReload = LPTIM_AUTORELOAD_ENABLE;//使能自动重加载功能
sLpTimHandle.Init.Period = LPTIMx_RELOADVALUE;//设置定时的时间
sLpTimHandle.Init.TogEnable = LPTIM_TOG_ENABLE;//定义定时器输出翻转功能
HAL_LPTIM_Base_Init(&sLpTimHandle);//初始化定时器
/* Start LPTIMx instance, output toggle signal */
HAL_LPTIM_Base_Start(&sLpTimHandle); //启动定时器定时功能
下面的代码是初始化定时器的输入信号捕获功能:
sTimxHandle.Instance = TIMx; //设置要初始化的定时器为定时器1
sTimxHandle.Init.Period = TIMx_PERIOD;
sTimxHandle.Init.Prescaler = uiPrescalerValue;//这两条指令设置定时器的定时时间为1uS.
sTimxHandle.Init.ClockDivision = 0;
sTimxHandle.Init.CounterMode = TIM_COUNTERMODE_UP;//定时器的计数方向向上计数
sTimxHandle.Init.RepetitionCounter = 0;
sTimxHandle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
sTimxIcInitHandle.ICPolarity = TIM_ICPOLARITY_RISING;//设置捕获信号为上升沿
sTimxIcInitHandle.ICSelection = TIM_ICSELECTION_DIRECTTI;//设置捕获信号的通道
sTimxIcInitHandle.ICPrescaler = TIM_ICPSC_DIV1;
sTimxIcInitHandle.ICFilter = 0x00;
/* Start TIMx instance, enable update interrupt, start TIMx channel1 input capture*/
HAL_TIM_Base_Start_IT(&sTimxHandle);
HAL_TIM_IC_Start_IT(&sTimxHandle, TIM_CHANNEL_1);
HAL_NVIC_EnableIRQ(TIMx_IRQn);//初始化定时器、启动定时器并使能中断
程序中还有两个函数设置低功耗定时器的输出引脚与定时器1的捕获输入引脚:HAL_LPTIM_Base_MspInit()与HAL_TIM_IC_MspInit
在发生捕获事件后在中断的回调函数中读取当前定时器1的计数值:
uiCaptureValue = __HAL_TIM_GET_COMPARE(htim, TIM_CHANNEL_1);
在发生下一次捕获事件后通过两次捕获的定时器的值计算信号的频率:
uiFrequency = TIMx_FREQ/(uiCaptureValueNew - uiCaptureValueOld);
- |
- +1 赞 0
- 收藏
- 评论 0
本文由John提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】芯海科技CS32L010开发环境搭建及demo程序获取与jlink调试
芯海科技CS32L010是一款内嵌32位ARM Cortex-M0内核的超低功耗微控制器,使用Keil MDK作为开发环境,调试工具为jlink,通过SWD接口下载调试程序。本文主要介绍CS32L010的开发环境搭建以及demo程序的获取与jlink调试。
【经验】在keil中添加芯海MCU CS32A010K8V7的支持包
本文将介绍在keil中添加芯海MCU CS32A010K8V7的支持包,芯海科技推出的CS32A010K8V7是一款32Pin脚的ARM 32位构架Cortex-M0核的MCU,内置64K Flash,1路SPI、2路USART支持FIFO等丰富的资源。
【经验】实战芯海CS32F031C8T6 MCU使用GCC编译器的startup.s启动文件
本文将以芯海推出的32位MCU CS32F031C8T6为例,给大家分享一个startup.s文件,希望帮助有需要使用GCC开发芯海CS32F031C8T6产品的各位小伙伴。
芯海科技CS32F061:集成12位DAC高性价比信号链MCU,具有丰富的模拟特性,满足高精度需要
芯海科技32位通用MCU系列全新推出集成12位DAC的高性价比信号链MCU芯片CS32F061。这款MCU具备丰富的模拟特性,内置可编程逻辑单元,可简化硬件设计,是高精度数据处理及灵活信号链设计的嵌入式系统的理想选择,在电动工具、电源管理、工业控制及通信等领域拥有广泛应用前景。
芯海科技CST92F42:高性价比BLE MCU,实现60帧流畅刷屏!
芯海科技CST92F42是一款高集成、低功耗的BLE5.1 MCU。该产品搭载高性能32位MCU内核并支持硬件浮点,内置64KB SRAM、512KB Flash,支持所有蓝牙LE V5.1特性,拥有丰富的功能外围单元,同时集成高效的电源管理。
【应用】芯海MCU CS32L010F8U6用于电子烟,封装为QFN20(3mm*3mm),运行频率24MHz
芯海的MCU CS32L010F8U6在电子烟中的应用,它是一款内嵌 32 位 ARM® Cortex®-M0 内核的超低功耗微控制器,最高可运行在24MHz,内置 64K 字节的嵌入式 Flash,4K 字节的 SRAM,具有高整合度、高抗干扰、高可靠性及高性价比等优势。
CS32L010 ARM®Cortex®-M0 32位超低功耗微控制器规格书
CS32L010是一款基于32位ARM®Cortex®-M0内核的超低功耗微控制器,具有64K字节闪存和4K字节SRAM,集成了多种外设接口,如12位ADC、RTC、比较器、多通道UART、SPI、I2C和PWM等。该产品适用于多种应用场景,如电子烟、可穿戴设备、个人护理产品等。
芯海 - MICROCONTROLLER,32位超低功耗微控制器,微控制器,MCU,32-BIT ULTRA-LOW POWER CONSUMPTION MICROCONTROLLER,单片机,CS32L010F8K6,CS32L010,CS32L010F8U6,WEARABLE DEVICES,ELECTRONIC CIGARETTE,电子烟,穿戴式设备,消费者,PERSONAL CARE PRODUCTS,个人护理产品,CONSUMER
【经验】芯海科技通用32位MCU有效规避意外掉电的硬件设计方案
本文以芯海科技MCU CS32L010F8U6为例,简述在进行硬件设计的时候如何有效规避因为意外掉电而造成工作异常的方案。在进行硬件电路设计的时候,我们可以在单片机供电引脚上接一个电容到GND以存储电量,防止芯片意外掉电
CS32F103x8/xB 基于 Arm ® Cortex ®-M3 内核的32位微控制器数据手册
本资料详细介绍了基于ARM® Cortex®-M3内核的32位微控制器CS32F103x8/xB系列的产品特性。该系列微控制器具备高性能的ARM® Cortex®-M3 32位RISC内核,工作频率最高可达72MHz,内置高达64/128KByte的Flash存储器和20KByte的SRAM。产品支持多种工作环境,包括低功耗模式、丰富的通信接口和多种封装选项。CS32F103x系列适用于多种应用场景,如电机驱动、医疗手持设备、PC外设等。
芯海 - 微控制器,32 位微控制器,MCU,单片机,CS32F103VBT7T,CS32F103,CS32F103CBT7,CS32F103XB 系列,CS32F103X8,CS32F103C8T7,CS32F103VBT7,CS32F103C8T7-LQFP48,CS32F103X8 系列,CS32F103RBT7-LQFP64,CS32F103RBT7,CS32F103VBT7-LQFP100,CS32F103XB,CS32F103CBT7-LQFP48,医疗手持设备,电机驱动,GPS 平台,PC 外设,游戏,工业
CS32G051 32 位 Type-C&PD 控制器
CS32G051是一款32位微处理器,适用于工业控制和高性能、低功耗应用。该芯片具备32MHz工作频率,内嵌256K字节程序Flash和12K字节SRAM,支持多种外设,包括I/O口、定时器、UART、I2C、ADC等。此外,CS32G051还支持In-System Programming (ISP) & In-Circuit Programming (ICP)功能,并提供多种工作模式以满足不同低功耗需求。
芯海 - 32 位 TYPE-C&PD 控制器,32位MCU,微控制器,控制器,CONTROLLER,CS32G051 系列,CS32G051KCU6,CS32G050KCU6,CS32G020XX,CS32G051,工业控制
【经验】以芯海32位MCU CS32F035F6P7为例介绍如何通过ISP上位机软件进行Flash的读写保护
ISP(在系统上编程)是一种常用的下载或者升级程序的方式,通常会选择使用UART进行操作。本文以芯海32位MCU CS32F035F6P7为例介绍通过上位机软件CS32 ISP Programmer进行Flash读写保护的方法。
芯海32位MCU选型表
芯海32位MCU选型表包括常规32位MCU、32位低功耗MCU、32位车规MCU。该选型表的Core包括M0和M3两种,内含型号是芯海科技基于Arm® Cortex®-M内核、高可靠性的32位通用微控制器。 包括多款产品,内嵌Flash存储器,集成高性能ADC、丰富的模拟外设、适用于工业控制的高级定时器和通信接口,满足工业应用的质量和可靠性标准,被广泛用于工业控制、汽车电子、智能家居等领域。
产品型号
|
品类
|
Core
|
Freq.(MHz)
|
Flash(Bytes)
|
SRAM(Bytes)
|
IO
|
Adv.Timer
|
16bit GP Timer
|
SysTick
|
FWDT/WWDT
|
UART
|
SPI
|
I2C
|
12bit ADC Units(ch)
|
Temp.Sensor
|
Operating Temp.(℃)
|
Supply Voltage(V)
|
Package
|
CS32F030F6P6-RA
|
32位MCU
|
M0
|
48MHz
|
32KBytes
|
4KBytes
|
15
|
1
|
5
|
1
|
1/1
|
4
|
1
|
1
|
1(9)
|
Y
|
-40℃~85℃
|
2.0V~5.5V
|
TSSOP20
|
选型表 - 芯海 立即选型
【应用】芯海科技32位MCU CS32L010F8U6用于美眼仪,最高主频24MHz
根据美眼仪的应用需求,本文推荐采用国产芯海科技推出的32位MCU CS32L010F8U6为主控。该MCU最高主频24MHz,工作温度范围-40~+85℃,2.5~5.5V的工作电压,也被广泛应用于控制器,手持设备,GPS平台,PC外设等。
【经验】解析芯海科技32位MCU CS32F031G8U6在keil中新建工程的相关操作步骤
CS32F031G8U6是芯海科技推出的一款针对光模块应用的MCU解决方案,内部集成的温度传感器线性误差为+/-3℃,适用于10G 、25G、100G部分类型的光模块应用。本文介绍32位MCU CS32F031G8U6在keil中新建工程的相关操作步骤。
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论