定时器外部时钟

一、相较于内部时钟中断改动:

1.Timer.c

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);			//开启GPIOA的时钟
	
	/*GPIO初始化*/
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);						//将PA0引脚初始化为上拉输入
	
	/*外部时钟配置*/
//外部时钟,模式2,第二个参数是分频,第三个是极性(反向,不反向)第四个是滤波器(f采样n个点,若n个点都一样,有效输出)
	TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0x0F);
																//选择外部时钟模式2,时钟从TIM_ETR引脚输入
																//注意TIM2的ETR引脚固定为PA0,无法随意更改
																//最后一个滤波器参数加到最大0x0F,可滤除时钟信号抖动
	/**
  * 函    数:返回定时器CNT的值
  * 参    数:无
  * 返 回 值:定时器CNT的值,范围:0~65535
  */
uint16_t Timer_GetCounter(void)
{
	return TIM_GetCounter(TIM2);	//返回定时器TIM2的CNT
}


  

2.main.c

OLED_ShowString(2, 1, "CNT:");			//2行1列显示字符串CNT:
	
	while (1)
	{
		OLED_ShowNum(2, 5, Timer_GetCounter(), 5);		//不断刷新显示CNT的值
	}

 二、现象:

每次遮挡CNT+1,超过9,Num+1 

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 20:58:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 20:58:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 20:58:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 20:58:02       20 阅读

热门阅读

  1. K8S常用命令

    2024-02-20 20:58:02       36 阅读
  2. spring-orm:6 HibernateJpaVendorAdapter源码解析

    2024-02-20 20:58:02       25 阅读
  3. TensorFlow 的基本概念和使用场景

    2024-02-20 20:58:02       26 阅读
  4. firewall 常用命令

    2024-02-20 20:58:02       34 阅读
  5. LeetCode 19.删除链表中的倒数第N个节点 改进算法

    2024-02-20 20:58:02       38 阅读
  6. 设置ant-design vue表单a-input输入类型为数字

    2024-02-20 20:58:02       26 阅读
  7. C Primer Plus(第六版)16.18 编程练习 第7题

    2024-02-20 20:58:02       22 阅读
  8. git rebase使用

    2024-02-20 20:58:02       26 阅读
  9. Prompt Engineering 高级提示工程技巧

    2024-02-20 20:58:02       29 阅读
  10. 使用sass开发web-components组件

    2024-02-20 20:58:02       26 阅读