stm8s103k3 周期 捕获_STM8S做输入捕获
希望我这个对正在用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做输入捕获相关推荐
- stm32时钟(2)输入捕获以及PWM输入捕获
输入捕获 过程 在输入捕获模式下,信号从TIx输入,一共有四个输入口,以TI1为例,经过滤波器和边沿检测器后输出TI1FPx两路信号,该信号可以直接从IC1从输入,也可以从IC2输入,此处以IC1 ...
- cc2530定时器和捕获比较_ALIENTEK 阿波罗 STM32F767 开发板资料连载十四章 输入捕获实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 http://weixi ...
- stm32 输入捕获 测量脉宽
选用通用定时器TIM5的CH1. PA0接一个按键,默认接GND,当按键按下时,IO口被拉高,此时,可利用定时器的输入捕获功能,测量按键按下的这段高电平的时间. 宏定义方便程序升级.移植,举个例子: ...
- STM32-通用定时器-输入捕获
1.概述 前面,我们介绍了STM32F1的通用定时器作为PWM输出的使用方法,这一章我们向大家介绍通用定时器作为输入捕获的使用.在本章中,我们将用TIM5的通道的通道1(PA0)来做输入捕获, 捕获 ...
- stm32PWM输入捕获模式详解
一.概念理解 PWM输入捕获模式是输入捕获模式的特例,自己理解如下 每个定时器有四个输入捕获通道IC1.IC2.IC3.IC4.且IC1 IC2一组,IC3 IC4一组.并且可是设置管脚和寄存器的对应 ...
- STM32 输入捕获 测量频率 PWM占空比
看了网上关于STM32输入捕获的资料,有几篇介绍的很不错,但是内容上还有一点问题,稍加修改,大家可以参考一下. 重要概念理解(对于理解输入捕获功能很重要,特别看了数据手册CCR1\CCR2\CCR3\ ...
- STM32F4_定时器输入捕获详解
目录 1. 输入捕获简介 2. 输入捕获框图 3. 输入捕获模式 4. 相关寄存器 4.1 TIMx_ARR.TIMx_PSC 4.2 捕获/比较寄存器1:TIMx_CCMR1 4.3 捕获/比较使能 ...
- STM32学习记录:输入捕获应用
目录 前言 一.输入捕获的应用 1.1.测量脉宽或者频率 1.2.测量频率的步骤方法 1.3.测量脉宽的步骤方法 二. 输入捕获工作过程 2.1.CH1为例,输入捕获工作过程 2.2.输入通道 2.3 ...
- stm32f767串口下载软件_ALIENTEK 阿波罗 STM32F767 开发板资料连载十四章 输入捕获实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第十四章 输入捕获实验 ...
最新文章
- python内置库之学习ctypes库(二)
- 机器人动力学(Basic Newton-Euler Mechanics)
- 科普向,什么是 Lua 语言?
- 优化--减少HTTP请求
- mysql命令_MySql常用命令
- 超强的用linux命令勾搭美女
- 服务器需不需要虚拟内存,服务器要不要虚拟内存
- ftp linux 开启验证_Linux认证系统管理:linux下搭建ftp
- 服务器故障内存位置怎么确定,服务器故障内存位置怎么确定
- python 音乐播放器
- 工程师英语和计算机证书查询,点击进入国家硬件维修工程师证书查询网站
- 台式机装苹果系统_台式机能装苹果系统? 能!
- snmp++ linux 编译出错_成为linux高手的第二步
- 财报识别OCR,披露虚假财务报表
- 牛客网——B 遥远的记忆
- 【Alpha阶段】第三次scrum meeting
- 运用知识图谱技术,赋能多领域应用 ——“未来杯”AI学术联赛总决赛暨颁奖典礼圆满落幕...
- python 100days github_GitHub - shuipf/Python-100-Days: Python - 100天从新手到大师
- 软件测试之冒烟测试中易犯的三个误区--新梦想软件测试
- 鲜檬“0元旅拍”出圈,婚纱摄影洗牌“加速”
热门文章
- MySQL第七讲 MySQL的高可用方案
- Linux使用rpm命令卸载软件
- 将文件内容追加到HDFS文件中报错:Failed to APPEND_FILE /user/huangyx/huangyx.txt for DFSClient_NONMAPREDUCE_1450897
- Android中四大组件
- 如何获取linux源码
- 4万高考冒名顶替事件_山东高考冒名顶替事件后续, 人民日报第一时间亮明态度!...
- Linux 多线程多进程
- Cocos2d-x 3.2 之 进度条 progressTimer
- 怎样在一台电脑里访问其他电脑里的虚拟机
- 《Python之禅》——原文和翻译