当前位置: 首页 > news >正文

stm32单片机个人学习笔记9(TIM输入捕获)

前言

本篇文章属于stm32单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。

STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili

一、简介

二、频率测量

三、输入捕获通道

四、主从触发模式

从模式选择Reset模式可以实现自动清零计数器CNT

五、输入捕获基本结构

六、PWM输入模式基本结构 

七、实例一(输入捕获测频率)

IC.c 

#include "stm32f10x.h"                  // Device headervoid IC_Init(void)
{//开启内部时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//GPIO口初始化RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);//设置为内部时钟模式TIM_InternalClockConfig(TIM3);//时基单元初始化TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInitStructure.TIM_Period = 65536 - 1;			//ARRTIM_TimeBaseInitStructure.TIM_Prescaler = 72 - 1;		//PSCTIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure);//输入捕获通道初始化TIM_ICInitTypeDef TIM_ICInitStructure;TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;TIM_ICInitStructure.TIM_ICFilter = 0xF;TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;TIM_ICInit(TIM3, &TIM_ICInitStructure);//配置主从触发模式TIM_SelectInputTrigger(TIM3, TIM_TS_TI1FP1);TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);//使能定时器TIM_Cmd(TIM3, ENABLE);
}uint32_t IC_GetFreq(void)
{return 1000000 / (TIM_GetCapture1(TIM3)+1);
}

八、实例二(PWMI模式测频率占空比)

输入通道初始化时添加一个指令 

	TIM_ICInitTypeDef TIM_ICInitStructure;TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;TIM_ICInitStructure.TIM_ICFilter = 0xF;TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;TIM_ICInit(TIM3, &TIM_ICInitStructure);TIM_PWMIConfig(TIM3, &TIM_ICInitStructure);

 最后一句会把结构体成员改变,通道1改为通道2,上升沿触发改为下降沿触发,直连方式改为交互连接


http://www.mrgr.cn/news/49269.html

相关文章:

  • node简单实现读取文件内容
  • 第十五届蓝桥杯C/C++学B组(解)
  • C语言实现输出空心数字金字塔
  • Vue——Uniapp回到顶部悬浮按钮
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-13
  • 【gRPC】gRPC简单使用 protocol
  • GPT联网分析到底有多强?实测效果告诉你答案!
  • Mybatis(看这一篇就够了)
  • 可变参数列表详解
  • Jira 效率革命:从团队抱怨到交口称赞 | 专家实战分享三大秘技,让团队爱上效率工具
  • windows环境在git bash中配置jdk和maven
  • 责任链模式(C++)
  • 桥接模式(C++)
  • 架构设计笔记-12-信息系统架构设计理论与实践
  • Vue学习笔记
  • Claude 账号被封怎么办?被封的原因有哪些?国内不怕封号的方法
  • vue3集成electron
  • 如何在UE5中创建加载屏幕(开场动画)?
  • 如何进行JVM的调优
  • 如何通过 Nginx 只允许 www 域名访问并禁止裸域名访问