当前位置: 首页 > news >正文

从0开始的STM32HAL库学习6

外部时钟源选择

配置环境

选择TIM2 

配置红色框图中的各种配置

时钟源选择外部时钟 2

1. 预分频器 Prescaler ,下面填0,不分频
2. 计数模式 CounterModer ,计数模式选择为向上计数
3. 自动重装寄存器 CouterPeriod ,自动重装计数器填为 10 ,计数到 10 后清空并出发中断
4. 滤波器的频率分频 InternalClockDivision
5. auto-reload preload :不使用影子寄存器

打开NVIC

这部分采用默认的即可

1. ClockFilter: 用来控制滤波的采样频率和采集点
2. Clock Polarity: 表示低电平或下降沿有效
3. ClockPrescaler: 表示输入的信号不进行分频

 初始化TIM2

在main函数中

  HAL_TIM_Base_Start_IT(&htim2);

重写回调函数

uint16_t hhRetCount=0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim==&htim2){hhRetCount+=1;}
}

显示定时值与CNT

OLED_ShowString(1, 1, "count:");
OLED_ShowString(2, 1, "CNT:");
while (1)
{
OLED_ShowNum(1, 7, hhRetCount,5);
OLED_ShowNum(2,5, __HAL_TIM_GET_COUNTER(&htim2),5);
}

显示效果

问题与解决

在程序启动的时候,外部还没有给信号,就进入了一次中断使得count的次数变成了1,解决办法和keil中的一样。在启动中断前清空一次标志位

__HAL_TIM_CLEAR_FLAG(&htim2, TIM_FLAG_UPDATE);

http://www.lryc.cn/news/404024.html

相关文章:

  • Elasticsearch ILM 热节点迁移至冷节点 IO 打满、影响读写解决方案探讨
  • STM32中PC13引脚可以当做普通引脚使用吗?如何配置STM32的TAMPER?
  • k8s学习——创建测试镜像
  • 重塑水资源管理的新篇章:深度剖析智慧水利解决方案的前沿技术与应用,探索其如何推动水利行业向智能化、高效化、可持续化方向迈进
  • C#实现数据采集系统-查询报文处理和响应报文分析处理
  • 【音视频】AAC编码器与ffmpeg生成AAC数据
  • Linux openEuler_24.03部署MySQL_8.4.0 LTS安装实测验证安装以及测试连接全过程实操手册
  • 【Elasticsearch7】3-基本操作
  • 给定一整数数组,其中有p种数出现了奇数次,其他数都出现了偶数次,怎么找到这p个数?
  • RICHTEK立锜科技 WIFI 7电源参考设计
  • CUDA编程00 - 配置CUDA开发环境
  • HTML5大作业三农有机,农产品,农庄,农旅网站源码
  • Spark的动态资源分配算法
  • Python 爬虫技术 第06节 HTTP协议与Web基础知识
  • js | 原型链
  • Volatility:分析MS10-061攻击
  • 水表数字识别3:Pytorch CRNN实现水表数字识别(含训练代码和数据集)
  • oracle数据文件损坏和误删dbf文件处理方法
  • postMessageXss续2
  • 【深度学习】sdxl的Lora训练技巧
  • 推荐一款 Android 手机端的 SSH 远程连接工具
  • 3.1、matlab双目相机标定实验
  • IntelliJ IDEA 直接在软件中更新为最新版
  • 库卡机器人示教器 KPC2 00107-264 KPC200.107-264
  • 数据传输安全--VPN
  • 【人工智能】人工智能可解释性和透明度的详细探讨
  • vscode+wsl2+anaconda环境的配置与使用
  • 【Linux网络】套接字编程
  • 在线 PDF 制作者泄露用户上传的文档
  • SQL概述及其规则与规范