标题: stm mini32串口打印对外加低频脉冲信号(5~20HZ)计数 [打印本页]

作者: B1ueObserver    时间: 2018-4-7 14:46
标题: stm mini32串口打印对外加低频脉冲信号(5~20HZ)计数
#include "sys.h"
#include "usart.h"        
#include "delay.h"   
#include "led.h"
#include "key.h"         

//TIM3,外部计数模式
void TIM3_CH2_Excnt_Init(u16 arr,u16 psc)
{   
    RCC->APB1ENR|=1<<1;    //TIM3 时钟使能  
    RCC->APB2ENR|=1<<2;        //使能PORTA时钟   

    GPIOA->CRL&=0X0FFFFFFF;      //PA7 清除之前设置   
    GPIOA->CRL|=0X80000000;      //PA7 输入   
    GPIOA->ODR|=1<<7;          //PA7 上拉
   


    TIM3->ARR=arr;    //设定计数器自动重装值   
    TIM3->PSC=psc;    //预分频器  

    TIM3->CCMR1|=1<<8;  //CC2S=01  选择输入端 IC2映射到TI2上
    TIM3->CCMR1|=0<<12;     //IC2F=0000 配置输入滤波器 不滤波

    TIM3->CCER|=1<<5;   //CC1P=0   下降沿计数
    TIM3->SMCR|=6<<4;   //触发选择:滤波后的定时器输入2(TI2FP2)
    TIM3->SMCR|=7<<0;   //外部时钟模式1
    TIM3->CR1|=1<<0;    //启动计数器,CEN=1
}


int main(void)
{   
    u32 oldcnt=0;   
    Stm32_Clock_Init(9);     //系统时钟设置
    uart_init(72,9600);      //串口初始化为9600
    delay_init(72);          //延时初始化  
    TIM3_CH2_Excnt_Init(0XFFFF,0);  //外部计数,最大值0xffff
    while(1)
    {
   
  delay_ms(1000);   
    delay_ms(1000);
    delay_ms(1000);
    delay_ms(1000);
    delay_ms(1000);
    delay_ms(1000);

            if(oldcnt!=TIM3->CNT)
            {
            oldcnt=TIM3->CNT;
            printf("cnt:%d\r\n",oldcnt);
            }
    }

}

串口打印对外加低频脉冲信号(5~20HZ)计数.zip

253.78 KB, 下载次数: 6, 下载积分: 黑币 -5






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1