stm32之测量周期

#include "tim4.h"

void TIM4_Init(void)
{
    // 开启时钟
    RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;
    RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // 使用 TIM4 的 GPIOB 时钟

    // 配置 PB6 为浮空输入 CNF 01 MODE 00
    GPIOB->CRL &= ~GPIO_CRL_MODE6;
    GPIOB->CRL &= ~GPIO_CRL_CNF6_1;
    GPIOB->CRL |= GPIO_CRL_CNF6_0; // 浮空输入

    // 定时器时基部分
    // 预分频71
    TIM4->PSC = 71;
    // 自动重装载值 1000
    TIM4->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的输入映射为TI1
    TIM4->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;

    //
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Young soul2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值