希望我这个对正在用STM8S做输入捕获,测频的有帮助!

-->

问卷调查,答题有礼

第一部:

内部时钟 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //16M

第二步:

配置IO口 我用的是STM8S103k3t6

GPIO_Init(GPIOB , GPIO_PIN_0 , GPIO_MODE_IN_PU_NO_IT);//TIM1_CH1 PB0端口

第三步:TIM1初始化,

注意:

tim1 分频是16000000/1600 =10000

那计数一下的时间是!1/10000 S

向上计数 0到20000 的时间是2S

void TIME1_INIT(void)

{

TIM1_DeInit();

TIM1_TimeBaseInit(1600, TIM1_COUNTERMODE_UP, 20000, 0);

TIM1_ICInit( TIM1_CHANNEL_1, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI , TIM1_ICPSC_DIV8, 0x0);

TIM1_ITConfig( TIM1_IT_CC1 , ENABLE);

TIM1_ClearFlag(TIM1_FLAG_CC1);

TIM1_Cmd(ENABLE);

}

第四步: TIM4用来产生溢出中断用的!

void TIME4_INIT(void)

{

TIM4_TimeBaseInit(TIM4_PRESCALER_32 ,250);

TIM4_ARRPreloadConfig(ENABLE);

TIM4_PrescalerConfig(TIM4_PRESCALER_32,TIM4_PSCRELOADMODE_IMMEDIATE);

TIM4_SetAutoreload(250);

TIM4_Cmd(ENABLE);

TIM4_ITConfig(TIM4_IT_UPDATE,ENABLE);

}

第五步: TIM1的中断程序 连续进入两次中断,两次计数的值 乘 第三步中计数一下的时间 就是脉宽

// if(TIM1_GetFlagStatus(TIM1_FLAG_CC1))

if(TIM1_GetITStatus(TIM1_FLAG_CC1) != RESET)

{

switch(temp)

{

case 0: ICValue1=TIM1_GetCapture1();

temp=1;

break;

case 1: ICValue2=TIM1_GetCapture1();

temp=2;

break;

default:

TIM1_CCxCmd(TIM1_CHANNEL_1, DISABLE);

TIM1_ITConfig(TIM1_IT_CC1, DISABLE);

temp=3;

break;

}

TIM1_ClearITPendingBit(TIM1_IT_CC1);

TIM1_ClearFlag(TIM1_FLAG_CC1);

}

第六步:

TIM4的中断程序

if(temp==3)

{

temp=0;

if(ICValue2>ICValue1)

{

disvalue=ICValue2-ICValue1;

}

else if(ICValue2

{

//disvalue=0xffff+ICValue2-ICValue1;

disvalue=20000+ICValue2-ICValue1; //防止计数到末端的时候 重新计数

}

val[i0++] = disvalue;

if(i0>10) i0=0;

display();

TIM1_CCxCmd(TIM1_CHANNEL_1, ENABLE);

TIM1_ITConfig(TIM1_IT_CC1, ENABLE);

}

else

{

display();

}

TIM4_ClearITPendingBit(TIM4_IT_UPDATE);

stm8s103k3 周期 捕获_STM8S做输入捕获相关推荐

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

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

  2. cc2530定时器和捕获比较_ALIENTEK 阿波罗 STM32F767 开发板资料连载十四章 输入捕获实验...

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 http://weixi ...

  3. stm32 输入捕获 测量脉宽

    选用通用定时器TIM5的CH1. PA0接一个按键,默认接GND,当按键按下时,IO口被拉高,此时,可利用定时器的输入捕获功能,测量按键按下的这段高电平的时间. 宏定义方便程序升级.移植,举个例子: ...

  4. STM32-通用定时器-输入捕获

    1.概述 前面,我们介绍了STM32F1的通用定时器作为PWM输出的使用方法,这一章我们向大家介绍通用定时器作为输入捕获的使用.在本章中,我们将用TIM5的通道的通道1(PA0)来做输入捕获, 捕获 ...

  5. stm32PWM输入捕获模式详解

    一.概念理解 PWM输入捕获模式是输入捕获模式的特例,自己理解如下 每个定时器有四个输入捕获通道IC1.IC2.IC3.IC4.且IC1 IC2一组,IC3 IC4一组.并且可是设置管脚和寄存器的对应 ...

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

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

  7. STM32F4_定时器输入捕获详解

    目录 1. 输入捕获简介 2. 输入捕获框图 3. 输入捕获模式 4. 相关寄存器 4.1 TIMx_ARR.TIMx_PSC 4.2 捕获/比较寄存器1:TIMx_CCMR1 4.3 捕获/比较使能 ...

  8. STM32学习记录:输入捕获应用

    目录 前言 一.输入捕获的应用 1.1.测量脉宽或者频率 1.2.测量频率的步骤方法 1.3.测量脉宽的步骤方法 二. 输入捕获工作过程 2.1.CH1为例,输入捕获工作过程 2.2.输入通道 2.3 ...

  9. stm32f767串口下载软件_ALIENTEK 阿波罗 STM32F767 开发板资料连载十四章 输入捕获实验...

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第十四章 输入捕获实验 ...

最新文章

  1. python内置库之学习ctypes库(二)
  2. 机器人动力学(Basic Newton-Euler Mechanics)
  3. 科普向,什么是 Lua 语言?
  4. 优化--减少HTTP请求
  5. mysql命令_MySql常用命令
  6. 超强的用linux命令勾搭美女
  7. 服务器需不需要虚拟内存,服务器要不要虚拟内存
  8. ftp linux 开启验证_Linux认证系统管理:linux下搭建ftp
  9. 服务器故障内存位置怎么确定,服务器故障内存位置怎么确定
  10. python 音乐播放器
  11. 工程师英语和计算机证书查询,点击进入国家硬件维修工程师证书查询网站
  12. 台式机装苹果系统_台式机能装苹果系统? 能!
  13. snmp++ linux 编译出错_成为linux高手的第二步
  14. 财报识别OCR,披露虚假财务报表
  15. 牛客网——B 遥远的记忆
  16. 【Alpha阶段】第三次scrum meeting
  17. 运用知识图谱技术,赋能多领域应用 ——“未来杯”AI学术联赛总决赛暨颁奖典礼圆满落幕...
  18. python 100days github_GitHub - shuipf/Python-100-Days: Python - 100天从新手到大师
  19. 软件测试之冒烟测试中易犯的三个误区--新梦想软件测试
  20. 鲜檬“0元旅拍”出圈,婚纱摄影洗牌“加速”

热门文章

  1. MySQL第七讲 MySQL的高可用方案
  2. Linux使用rpm命令卸载软件
  3. 将文件内容追加到HDFS文件中报错:Failed to APPEND_FILE /user/huangyx/huangyx.txt for DFSClient_NONMAPREDUCE_1450897
  4. Android中四大组件
  5. 如何获取linux源码
  6. 4万高考冒名顶替事件_山东高考冒名顶替事件后续, 人民日报第一时间亮明态度!...
  7. Linux 多线程多进程
  8. Cocos2d-x 3.2 之 进度条 progressTimer
  9. 怎样在一台电脑里访问其他电脑里的虚拟机
  10. 《Python之禅》——原文和翻译