打印
[其他ST产品]

STM42F407对外部脉冲计数:定时器初始化

[复制链接]
1049|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elephant00|  楼主 | 2022-4-11 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//对外部脉冲计数
//  GPIOA0接1按键,按下为高电平,复用到tiM8的ETR(外部计数脉冲输入端)                              
// 定时器8对GPIOA0输入的脉冲计数
//////////////////////////////////////////////////////////////////////////////////         

//TIM8_ETR 计数初始化

void TIM8_ETR_Counter_Init(u16 arr,u16 psc )
{
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
      
      
        RCC_APB2PeriphclockCmd(RCC_APB2Periph_TIM8,ENABLE);  
        //TIM8时钟使能   
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);        
      //使能PORTA时钟      
      
      
        // GPIOA0 工作模式为复用
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //GPIOA0
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;      
      //速度100MHz
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; //下拉
        GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化PA0
      
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM8);
     //PA0复用位定时器8
      
        //初始化定时器TIM8
        TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
      //向上计数模式
        TIM_TimeBaseStructure.TIM_Period=arr;   //自动重装载值
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
      
        TIM_TimeBaseInit(TIM8,&TIM_TimeBaseStructure);

      
        // 外部时钟配置初始化
          TIM_ITRxExternalClockConfig(TIM8,TIM_TS_ETRF);
    TIM_ETRClockMode2Config(TIM8,TIM_ExtTRGPSC_OFF,             TIM_ExtTRGPolarity_Inverted,0x00);
    TIM_SetCounter(TIM8, 0);  
               
    TIM_ITConfig(TIM8,TIM_IT_Update,DISABLE);
//不允许更新中断   ,直接读计数值

          TIM_Cmd(TIM8, ENABLE);  //使能TIM8               
      
}

在主程序,可以通过函数读计数值:TIM_GetCounter( TIM8); //读计数值

使用特权

评论回复
沙发
kiwis66| | 2022-4-11 14:04 | 只看该作者
会产生误差么

使用特权

评论回复
板凳
cr315| | 2022-4-13 09:37 | 只看该作者
同问
会产生误差么

使用特权

评论回复
地板
Jacquetry| | 2022-10-5 21:26 | 只看该作者
误差应该不大,可以接收

使用特权

评论回复
5
Bblythe| | 2022-10-7 11:29 | 只看该作者

结构化模块化的程序设计的思想,使最基本的要求

使用特权

评论回复
6
Pulitzer| | 2022-10-7 14:28 | 只看该作者

CPU借助于APB总线访问相关寄存器达到对I2C1工作模块的控制

使用特权

评论回复
7
万图| | 2023-6-1 07:27 | 只看该作者

每次代码提交的时候都会生成一条提交记录

使用特权

评论回复
8
Uriah| | 2023-6-1 08:30 | 只看该作者

清除与电镀动作都会在化学过程中完成

使用特权

评论回复
9
帛灿灿| | 2023-6-1 10:26 | 只看该作者

如果已经找到正确的值,继续测试一个值根本没有意义。

使用特权

评论回复
10
Bblythe| | 2023-6-1 11:29 | 只看该作者

切割完了第四个字符之后,再依次扫描剩下的空间,直到所扫描的这一竖上的所有点的灰度值不全为0时,认为是字符的开始并依次扫描直到所扫描的这一竖上的所有点的灰度值全为0时认为是字符的结束。

使用特权

评论回复
11
周半梅| | 2023-6-1 13:25 | 只看该作者

通常用发光二极管LED代替小灯

使用特权

评论回复
12
Pulitzer| | 2023-6-1 14:28 | 只看该作者

累加寄存器存储运行的数据和运算后的数据。

使用特权

评论回复
13
周半梅| | 2023-6-1 15:31 | 只看该作者

确定好硬件原理图,硬件布线,最后才是软件的开发

使用特权

评论回复
14
童雨竹| | 2023-6-1 16:24 | 只看该作者

断优先级有冲突导致UART-RX的正常接收

使用特权

评论回复
15
Wordsworth| | 2023-6-1 17:27 | 只看该作者

流编辑器,是一个使用简单紧凑的编程语言来解析和转换文本超强实用程序。

使用特权

评论回复
16
Clyde011| | 2023-6-1 18:30 | 只看该作者

ART2固定使用PCLK时钟,只有开启和关闭的问题,不存在其它时钟源选择

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

964

主题

2936

帖子

7

粉丝