gpt4 book ai didi

c - stm32f303vc发现tim3不工作

转载 作者:太空宇宙 更新时间:2023-11-04 03:09:45 25 4
gpt4 key购买 nike

我想将 tim3 ch1 ch2 配置为编码器模式,我在 tim2 上有相同的代码(它也是通用定时器)并且运行良好。也许我应该设置其他位,但我找不到它们。

我试图将这个定时器配置为在没有任何输出的情况下工作,只是在设定的时间段后产生中断,但它并没有正常工作。

    //TIM2 CH1 PA0 CH2 PA1 AF1
//TIM3 CH1 PE2 CH2 PE3 AF2

RCC->APB1ENR |= RCC_APB1ENR_TIM2EN | RCC_APB1ENR_TIM3EN ;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOEEN;

GPIOA->MODER |= GPIO_MODER_MODER0_1 | GPIO_MODER_MODER1_1;
GPIOE->MODER |= GPIO_MODER_MODER2_1 | GPIO_MODER_MODER3_1;

GPIOA->AFR[0] |= 0X00000011;
GPIOE->AFR[0] |= 0X00002200;


TIM2->SMCR = TIM_SMCR_SMS_0;
TIM2->CCMR1 = TIM_CCMR1_CC1S_0|TIM_CCMR1_CC2S_0;
TIM2->ARR = 24;
TIM2->DIER = TIM_DIER_UIE;
TIM2->CR1= TIM_CR1_CEN;

TIM3->SMCR = TIM_SMCR_SMS_0 ;
TIM3->CCMR1 = TIM_CCMR1_CC1S_0 | TIM_CCMR1_CC2S_0;
TIM3->ARR = 24;
TIM3->DIER = TIM_DIER_UIE;
TIM3->CR1= TIM_CR1_CEN ;

enter image description here

最佳答案

SMCR设置为0

您的代码将两个定时器都设置为编码器模式 1,请参阅引用手册中对 SMCR 寄存器的描述。

0001: Encoder mode 1 - Counter counts up/down on TI1FP1 edge depending on TI2FP2 level.

在此模式下,定时器计数器由 CH1 和 CH2 输入的信号递增或递减,而不是内部时钟。板上一定有其他组件,或者未连接时的线路噪声,成功触发了 TIM2 几次。

PE2 连接到另一个 IC 的输出端

查看电路板用户手册中的原理图。 PE2 连接到板载加速度计的 DRDY 输出

您可以使用 CubeMX 工具查找 TIM3 的可用引脚。在 Board Selector 屏幕中选择您的开发板,它会显示 PE2 和 PE3 已经连接到某个东西。

将 TIM3 组合 channel 设置为编码器模式,它会将一些空闲引脚分配给定时器。然后,您可以按住 CTRL 并单击引脚以查看替代方案(它们将闪烁蓝色),您可以使用鼠标拖动引脚分配。

关于c - stm32f303vc发现tim3不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57678028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com