找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2070|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
ID:302895 发表于 2018-4-7 14:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表