STM32
直播中

杨平

7年用户 1685经验值
私信 关注
[问答]

STM8S003F3计数不管用是怎么回事?

void tim1_count_init(void){    GPIOC->DDR  = ~GPIO_PIN_6;//输入    GPIOC->CR1 |= GPIO_PIN_6;//上拉输入    GPIOC->CR2  = ~GPIO_PIN_6;//禁止外部中断功能    GPIOC->DDR  = ~GPIO_PIN_7;//输入    GPIOC->CR1 |= GPIO_PIN_7;//上拉输入    GPIOC->CR2  = ~GPIO_PIN_7;//禁止外部中断功能    //CLK->PCKENR1 |= CLK_PCKENR1_TIM1;    TIM1->CCMR1 = 0x31;    //TIM1->CCMR2 = BIT0;//CC1通道被配置为输入,IC1映射在TI1FP1上;    //TIM1->CR2 |= BIT7;//使能计数器    TIM1->CCER1 |= 0x02;    //TIM1->CCMR2 = _OC2M=0x00;//无滤波器,以fMASTER采样    //TIM1->CCER1_CC2P=0;//捕获发生在TI2F的上升沿    //TIM1->CCMR2_OC2PE=0x00;//无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获    TIM1->SMCR |= 0x50;//选定TI2作为输入源    TIM1->SMCR |= 0x07;//TIM1_SMCR_SMS;//选中的触发输入(TRGI)的上升沿驱动计数器。    TIM1->CR1 |= 0x01;//TIM1_CR1_CEN;//使能计数器}uint16_t time1_get_num(void){    uint32_t d32;        d32 = TIM1->CNTRH;        d32 <<= 8;        d32 |= TIM1->CNTRL;    return d32;}


回帖(1)

硕达科讯

2024-3-19 17:07:45
这段代码是用来初始化定时器1的计数功能的。首先设置了PC6和PC7引脚为输入模式,并且开启上拉电阻。然后禁止了PC6和PC7引脚的外部中断功能。最后需要注意的是还缺少对CLK->PCKEN寄存器的设置,根据具体情况来决定是否需要使能定时器1的时钟。如果没有使能时钟,计数功能将无法正常工作。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分