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

stm32之测量周期

#include "tim4.h"void TIM4_Init(void)
{// 开启时钟RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // 使用 TIM4 的 GPIOB 时钟// 配置 PB6 为浮空输入 CNF 01 MODE 00GPIOB->CRL &= ~GPIO_CRL_MODE6;GPIOB->CRL &= ~GPIO_CRL_CNF6_1;GPIOB->CRL |= GPIO_CRL_CNF6_0; // 浮空输入// 定时器时基部分// 预分频71TIM4->PSC = 71;// 自动重装载值 1000TIM4->ARR = 65535; // 65535 是最大值,计数到这个值后会重装载// 向上计数TIM4->CR1 &= ~TIM_CR1_DIR;// TI1输入选择直通TIM4->CR2 &= ~TIM_CR2_TI1S; // 输入滤波器TIM4->CCMR1 &= ~TIM_CCMR1_IC1F; // 无滤波// 配置边沿检测器极性上升沿触发TIM4->CCER &= ~TIM_CCER_CC1P;// 选择通道1的输入映射为TI1TIM4->CCMR1 &= ~TIM_CCMR1_CC1S; // 清除 CC1S 位TIM4->CCMR1 |= TIM_CCMR1_CC1S_0; // 预分频器TIM4->CCMR1 &= ~TIM_CCMR1_IC1PSC; // 无预分频// 使能通道1输入TIM4->CCER |= TIM_CCER_CC1E;// 开启输入捕获中断使能TIM4->DIER |= TIM_DIER_CC1IE;// 配置 NVICNVIC_SetPriorityGrouping(3); // 设置中断分组NVIC_SetPriority(TIM4_IRQn, 3); // 设置 TIM4 中断优先级NVIC_EnableIRQ(TIM4_IRQn); // 使能 TIM4 中断
}void TIM4_START(void)
{TIM4->CR1 |= TIM_CR1_CEN; // 启动定时器
}void TIM4

相关文章:

  • JVM中的垃圾收集(GC)
  • idea运行到远程机器 和 idea远程JVM调试
  • 【C++】C++中的友元函数和友元类
  • 【科技核心期刊推荐】《计算机与现代化》
  • PaddleNLP
  • MongoDB05 - MongoDB 查询进阶
  • 极限平衡法和应力状态法无限坡模型安全系数计算
  • 阿里云-接入SLS日志
  • Wpf布局之Border控件!
  • ​扣子Coze飞书多维表插件-创建数据表
  • GPT,GPT-2,GPT-3 论文精读笔记
  • mapstate
  • 打通Dify与AI工具生态:将Workflow转为MCP工具的实践
  • 养老保险交得越久越好
  • 【ad-hoc】# P12414 「YLLOI-R1-T3」一路向北|普及+
  • 《弦论视角下前端架构:解构、重构与无限延伸的可能》
  • 商业秘密保护新焦点:企业如何守护核心经营信息?
  • 【硬核数学】2.1 升级你的线性代数:张量,深度学习的多维数据语言《从零构建机器学习、深度学习到LLM的数学认知》
  • STM32——MDK5编译和串口下载程序+启动模式
  • 信创背景下应用软件迁移解析:从政策解读到落地实践方案