STM8L输入捕获获取PWM占空比

  • STM8定时器1做PWM输入捕获的要求
  • 输入捕获功能踩坑说明
  • 相关程序
  • 总结

STM8定时器1做PWM输入捕获的要求

前几天,因为工作的需求,需要根据外部的PWM占控比大小来做相应的操作,使用的是STM8L系列的单片机。在实现过程中也踩了不少坑,由于是临时需要做这样一个功能,硬件上接PWM的管脚是随意的,接在了PC6管脚上.老实讲在做之前我都怀疑是否能够根据PC6这个管脚实现。因此翻阅了相应的数据手册。接下来我将介绍下,使用定时器1,管脚为PC6实现获取PWM的占控比。

首先STM8定时器1有三个通道,如下图:

但是内部是有四个IC,但IC4是没有通道的,我的理解是它可以做一些辅助的功能,这个不管。我们使用的是PC6,这个管脚在那个通道上呢,这个也是能找到的,如下图:

从图中可以知,PC6是在IC2上面。

PWM占空比测试需要两路IC,从下面的图可以看到,IC1和IC2有交叉的线路,当我们选用了通道2作为输入,那IC1也可以捕获到从IC2过来的信号。

接下来需要明白一个模式: 复位触发模式
我们将IC2上的信号源(如TI2FP2)设为复位触发模式,并设置上升源触发后,当IC2检测到有效的上升沿后,TIM1会将原来的计数清零。如此可以简化我们对PWM的计算(具体原因可以百度)。

输入捕获功能踩坑说明

1.一开始硬件连接的是PC7管脚,使用的是通道3,配置程序后,IC3和IC4可以采集定时计数值,但是没有对应的信号触发源来实现计数清零。具体如下寄存器说明和第一幅图比较,没有TI3FP3或者TI3FP4,因此改为PC6管脚:

2.由于我采集的PWM的频率为130KHZ,相对较快,导致中断过于频繁,而没有机会运行正常代码,后面进行了8分频。
3.中断优先的问题,由于程序有多个类型的中断,不能将定时器1的中断优先级设置的太高也不能设置的太低,如果太高,则其他的中断会受到干扰,如果太低,则可能受其他中断的干扰,采集不到数据。

相关程序

初始化程序:

void Time1_Init(void)
{uint8_t ICFilter = 0;CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,ENABLE);//开启TIM1时钟TIM1_DeInit();GPIO_Init(GPIOC, GPIO_Pin_6, GPIO_Mode_In_FL_No_IT);/* configure TIM1 channel 3 to capture a PWM signal */TIM1_PWMIConfig(TIM1_Channel_2, TIM1_ICPolarity_Rising, TIM1_ICSelection_DirectTI,TIM1_ICPSC_DIV8, ICFilter);SYSCFG_RITIMInputCaptureConfig(RI_InputCapture_IC2, RI_InputCaptureRouting_14);/* Select the TIM1 Input Trigger: TI1FP1 */TIM1_SelectInputTrigger(TIM1_TRGSelection_TI2FP2);TIM1_SelectSlaveMode(TIM1_SlaveMode_Reset);ITC_SetSoftwarePriority(TIM1_CC_IRQn, ITC_PriorityLevel_1);/* Enable CC1 interrupt request */TIM1_ITConfig(TIM1_IT_CC2, ENABLE);/* Enable TIM1 */TIM1_Cmd(ENABLE);
}

中断程序:

  if (TIM1_GetITStatus(TIM1_IT_CC2) != RESET) {IC1Value = TIM1_GetCapture2();if (IC1Value != 0){IC2Value = TIM1_GetCapture1();SignalDutyCycle = ((uint32_t) IC2Value * 100) / IC1Value;}else{SignalDutyCycle = 0;}/* Clear TIM1 Capture compare interrupt pending bit */TIM1_ClearITPendingBit(TIM1_IT_CC2);}

总结

1.通道3不能检测PWM占空比。
2.通道2和通道1可以反向设置,用于获取占空比。
3.定时器1的通道2和通道3的输入捕获管脚可以配置。

[STM8L15x]输入捕获获取PWM占空比相关推荐

  1. STM32 输入捕获 测量频率 PWM占空比

    看了网上关于STM32输入捕获的资料,有几篇介绍的很不错,但是内容上还有一点问题,稍加修改,大家可以参考一下. 重要概念理解(对于理解输入捕获功能很重要,特别看了数据手册CCR1\CCR2\CCR3\ ...

  2. STM32F407输入捕获应用--PWM 输入模式测量脉冲频率与宽度

    STM32F407输入捕获应用--PWM 输入模式测量脉冲频率与宽度 一.测量脉宽或者频率 二.PWM 输入模式 三.软件实现 3.1.硬件准备 3.2代码 3.4 验证 输入捕获一般应用在两个方面, ...

  3. STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)

    目录 定时器 8个定时器 定时器功能 定时器中断 常用通用定时器的寄存器 定时器中断实验目的: 定时器库函数及步骤 实验程序讲解 PWM 简介 STM32 PWM工作过程 PWM模式1 与 PWM模式 ...

  4. stm32时钟(2)输入捕获以及PWM输入捕获

    输入捕获 过程 ​ 在输入捕获模式下,信号从TIx输入,一共有四个输入口,以TI1为例,经过滤波器和边沿检测器后输出TI1FPx两路信号,该信号可以直接从IC1从输入,也可以从IC2输入,此处以IC1 ...

  5. 输入捕获-获取一个高电平的持续时间

    文章目录 一.内容介绍 二.逻辑梳理 1.初始化 2.针对其中预分频为什么是72做一个解释 预分频 解释 3.理解两个变量:STA .VAL 三.部分代码 1.变量STA . VAL 2.输入捕获初始 ...

  6. STM32小项目总结4:TIM输入捕获测频率+占空比

    TIM输入捕获 1.输入捕获模式测频率: 捕获事件:首先设置为上升沿捕获,每来一个上升沿,CNT转运CCR一次,且CNT的值是两个上升沿之间的间隔,即CNT=周期,所以用来计时,也就是T.CCR的捕获 ...

  7. STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)

    本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...

  8. 备赛电赛学习STM32篇(七):TIM输入捕获

    目录 一.输入捕获简介 二.频率测量 三.电路如何实现测周法 3.1.简介 3.2.详细的电路 3.3.主从触发模式 3.4.输入捕获和PWMI结构 四.输入捕获测量PWM波形的频率和占空比 4.1. ...

  9. STM32-定时器输入捕获实验(捕获PWM方波的频率和占空比)

    STM32-定时器输入捕获实验(捕获PWM方波的频率和占空比) 一.输入捕获模式 在输入捕获模式下,当检测到ICx信号上相应的边沿后,计数器的当前值被锁存到捕获/比较寄存器(TIMx_CCRx)中.当 ...

  10. STM32笔记——定时器输入捕获功能(测量PWM的频率和占空比)

    目录 一.概述 二.输入捕获功能 2.1 输入捕获简介 2.2 输入捕获通道 三.输入捕获功能测量PWM波的频率和占空比 3.1 测量频率的方法 3.2 测量过程 一.概述 主要介绍通用定时器的输入捕 ...

最新文章

  1. 交流潮流matlab程序,大神们,求个电力系统潮流计算的matlab程序。
  2. 【MM模块】Source Lists 货源清单
  3. 16.validate_api
  4. 爱尔兰圣三一学院计算机全球排名,QS世界大学学科排名,爱尔兰圣三一学院20个学科进世界百强...
  5. [看书笔记]《深入java虚拟机》——java体系结构(二)
  6. 老古语道:十九年头七年寡,鼠年难逢双春年,有何说法?
  7. Https的数据请求的证书设置
  8. win2003server域控服务器安装及设置
  9. MongoDB,无模式文档型数据库简介
  10. 机器人学-笔记-斯坦福大学公开课-class 1
  11. 解决win10Docker安装失败问题
  12. 【精华帖】PS拼接图片最简单教程
  13. PS制作简单可爱马赛克像素画效果
  14. 计算机专业英语教学工作总结,2020大学英语教师上学期教学工作总结
  15. MySQL无法启动 系统发生1058错误
  16. 免费将图片转换成网络链接
  17. Greenplum集群Master与Standby相互切换
  18. Linux上vim编辑器使用教程
  19. mysql udp提权_SQL Server数据库1433端口解封提权
  20. 替换掉NO_OS逻辑和代码中的SPI部分

热门文章

  1. Java反射学习笔记
  2. oracle刷同义词报错,oracle 同义词
  3. 移动警务整体解决方案_辅助或替代人类的技术无法解决警务问题
  4. 计算机网络对大学生负面影响案例,大学生网络成瘾问题的危害及影响
  5. 数据库操作(DML,DCL,DQL)
  6. Android 获得设备状态信息、Mac地址、IP地址
  7. δ星 丨 读书笔记 notes-凭什么《只放一只羊》:干掉沃尔玛10个亿并将其逼出德国的“平民超市”品牌阿尔迪...
  8. 元胞自动机:森林火灾模拟(Python:numpy、seaborn)
  9. JSP无法加载静态资源:Failed to load resource: the server responded with a status of 404 ()
  10. 计算机里的文件中的桌面不见了,电脑重启桌面文件不见了怎么办