蓝桥杯嵌入式——输入捕获
时间:2023-03-18
本文章向大家介绍蓝桥杯嵌入式——输入捕获,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
配置
由图可知需要配置PA15和PB4
然后tim2的参数配置如下
tim3的配置如下,因为TIM3也被用作按键中断,可能存在一定的问题(重装载值不够),建议按键换一个定时器
编程(中断部分)
首先还是中断函数的编写,ccrl_val有点像重装载值的意思,具体的含义暂时不知道怎么表述,就像是在记录重装载值是多少
这里首先记忆有一个回调函数(用作输入捕获的),void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
然后是得到ccrl的一个函数HAL_TIM_ReadCapturedValue(____, _____)
得到之后要将计时器置零__HAL_TIM_SetCounter(htim,0)
然后计算frq1 = (80000000/80)/ccrl_val1;
然后再开启定时器HAL_TIM_IC_Start(htim,TIM_CHANNEL_1);
1 uint ccrl_val1=0,ccrl_val2=0; 2 uint frq1=0,frq2=0; 3 void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) 4 { 5 if(htim->Instance == TIM2) 6 { 7 ccrl_val1 = HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1); 8 __HAL_TIM_SetCounter(htim,0); 9 frq1 = (80000000/80)/ccrl_val1; 10 HAL_TIM_IC_Start(htim,TIM_CHANNEL_1); 11 } 12 if(htim->Instance == TIM3) 13 { 14 ccrl_val2 = HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1); 15 __HAL_TIM_SetCounter(htim,0); 16 frq2 = (80000000/80)/ccrl_val2; 17 HAL_TIM_IC_Start(htim,TIM_CHANNEL_1); 18 } 19 }
编程(初始化部分)
一定要记得初始化
1 HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1); 2 HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1);
原文地址:https://www.cnblogs.com/Euphonium611/p/17229134.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 联盟链智能合约安全浅析
- MySQL复杂where条件分析
- 超链接标签
- 【剑指Offer】二叉树的镜像
- 【redis6.0.6】redis源码慢慢学,慢慢看 -- 第四天:提纲掣领main函数(server)
- redis学习(六)
- 原生JS实现一个Ajax跨域请求
- 深入理解类加载机制:拨开迷雾见真章
- 修复postgres安装错误 Problem running post-install step. Installation may not complete correctly The datab
- automagica 调用windows画图以及登录qq
- 数据库PostrageSQL-高级特性
- 数据库PostgreSQL-安装
- CentOS 7 安装 PHP 7.4.0 正式版
- ABAP实现设计模式里的观察者-发布者模式
- 如何在SAP S/4HANA里创建自定义的partner function