当前位置: 首页 > 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.lryc.cn/news/464205.html

相关文章:

  • ubuntu 安装haproxy
  • TF-A(Trusted Firmware-A)及其启动流程详解:以stm32MP1平台为例
  • FL Studio 2024 发布,添加 FL Cloud 插件、AI 等功能
  • webpack实战 | 医保服务平台信息查询 | 国密SM4 | SM2 | 逆向分析
  • 脉冲扩散模型
  • blender分离含有多个动作的模型,并导出含有材质的fbx模型
  • 胤娲科技:AI大模型的隐秘战争——当“智能”成为双刃剑
  • RK平台 GPIO序号转换软件
  • UDP协议和TCP协议
  • 算法题总结(十三)—— 动态规划(上)
  • Leetcode - 周赛419
  • C# 的两个list怎么判断是否存在交集
  • 【Python】基础语法
  • scala 类的继承
  • 穷举vs暴搜vs深搜vs回溯vs剪枝(一)
  • 枚举的应用
  • 读数据工程之道:设计和构建健壮的数据系统14源系统
  • 基于SpringBoot+Vue的厨艺交流系统的设计与实现(源码+定制开发)厨艺知识与美食交流系统开发、在线厨艺分享与交流平台开发、智能厨艺交流与分享系统开发
  • STMicroelectronics 意法半导体芯片选型表
  • TCP/IP 寻址
  • 深入探索 APKTool:Android 应用的反编译与重打包工具
  • 软件测试与软件缺陷的基础知识
  • 【JPCS独立出版,EI检索稳定】第三届能源互联网及电力系统国际学术会议(ICEIPS 2024)
  • ssm配置模式
  • [MySQL课后作业]人事管理系统的SQL实践
  • 【MySQL】增删改查-进阶(二)
  • cefsharp79.1.360(Chromium 79.0.3945.130)支持H264视频播放-PDF预览 老版本回顾系列体验
  • 【Linux】main函数的参数列表从何而来?
  • 缓冲区类QBuffer
  • 从一个事故中理解 Redis(几乎)所有知识点