通用定时器捕获实验20240920

news2024/9/21 16:32:34

通用PWM捕获

    gtim_timx_pwm_chy_init(5000 - 1,1700 - 1);   /* 100k HZ计数频率,50ms的周期,占空比为50%,也就是高电平时间 = 25ms = 25000us */

ARR是5000-1,系统时钟频率170mhz,PWM频率=定时器时钟频率/(ARR+1)(PSC+1)=170mhz/(5000*1700)=20HZ,PWM周期=1/20=0.05s=50ms

占空比=比较值/(ARR+1)

捕获频率的计算:
计数频率=时钟频率/(ARR+1)


extern uint8_t  g_timxchy_cap_sta;               /* 输入捕获状态 */
extern uint16_t g_timxchy_cap_val;               /* 输入捕获值 */

int main(void)
{
    uint32_t temp = 0;
    uint8_t t = 0;
    
    HAL_Init();                                  /* 初始化HAL库 */
    sys_stm32_clock_init(85, 2, 2, 4, 8);        /* 设置时钟,170Mhz */
    delay_init(170);                             /* 延时初始化 */
    usart_init(115200);                          /* 初始化串口 */
    led_init();                                  /* 初始化LED */
    gtim_timx_pwm_chy_init(5000 - 1,1700 - 1);   /* 100k HZ计数频率,50ms的周期,占空比为50%,也就是高电平时间 = 25ms = 25000us */
    gtim_timx_cap_chy_init(0xFFFF - 1, 170 - 1); /* 以1Mhz的频率计数 捕获 */
    //0xFFFF:65534 这允许在较长的时间内进行捕获而不会溢出
    while (1)
    {
        if (g_timxchy_cap_sta & 0X80)            /* 成功捕获到了一次高电平 */
        {
            temp = g_timxchy_cap_sta & 0X3F;
            temp *= 0xFFFF;                      /* 溢出时间总和 */
            temp += g_timxchy_cap_val;           /* 得到总的高电平时间 */
            printf("HIGH:%d us\r\n", temp);      /* 打印总的高电平时间 */
            g_timxchy_cap_sta = 0;               /* 开启下一次捕获 */
        }

        t++;
        if (t > 20)                              /* 200ms进入一次 */
        {
            t = 0;
            LED0_TOGGLE();                       /* LED0闪烁,提示程序运行 */
        }
        delay_ms(10);
    }
}

&0x80 :检查左边第一位是否是1 ,它是1才可以进行if后的语句
至于为什么位7为1 就表示捕获成功的原因:
位0:捕获启动
位1:捕获溢出
位7:捕获成功

temp = g_timxchy_cap_sta & 0X3F :
0X3F:0011 1111

(uart:直接用printf 就可以)
溢出时间总和=溢出次数*溢出时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2152796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图灵完备 Turing Complete】游戏经验攻略分享 Part.4 处理器架构

比较有难度的一个部分。 运算单元ALU,其实就是通过OP选择计算方式,然后选通某个计算,之后输出。每个计算逐个实现就行了。 下面是一个优化占地面积的ALU,变得紧凑了一点。 下面是一个简单的OP选通原理线路。判断是立即数寻址&…

吹爆吊打 GPT-4 的大模型新王者Reflection 70B,是否言过其实?

引言 一觉睡西天,谁知梦里乾坤大。只身眠净土,只道其中日月长。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩。今天这篇小作文主要介绍这几天网上狂吹的开源新晋王者Reflection 70B,该模型…

【医疗大数据】医疗保健领域的大数据管理:采用挑战和影响

选自期刊**《International Journal of Information Management》**(IF:21.0) 医疗保健领域的大数据管理:采用挑战和影响 1、研究背景 本研究的目标是调查阻止医疗机构实施成功大数据系统的组织障碍,识别和评估这些障碍,并为管理…

Qemu开发ARM篇-1、环境搭建篇

文章目录 1、目标2、欢迎来到qemu世界3、开发环境4、依赖安装5、编译安装qemu 1、目标 我们的目标是在x86平台上搭建上arm开发环境,及在x86平台模拟一台arm设备,以达到能快速在x86平台上学习arm相关知识,如uboot启动、kernel开发调试等&…

实时美颜的技术突破:视频美颜SDK与直播美颜工具的开发详解

如今,视频美颜SDK和直播美颜工具的开发,为各类应用提供了技术支持,使得美颜效果更加智能、高效。本文将详细探讨实时美颜的技术突破及其在视频美颜SDK和直播美颜工具中的应用与开发。 一、视频美颜SDK的核心技术 1.人脸检测与特征点识别 视…

稀土抗紫外屏蔽剂在涂层中的应用

稀土抗紫外屏蔽剂的主要作用是有效地吸收或阻挡紫外线,从而保护材料或表面免受紫外线的伤害,延长其使用寿命。 稀土抗紫外屏蔽剂在涂层上的应用具有以下显著优势: 1. 增强涂层的耐久性:稀土抗紫外屏蔽剂能够有效吸收和散射紫外线…

Linux常用命令(部分学习待继续补充)

pwd print working directory 打印当前的工作目录 / 根目录 ls list 列出当前目录下的所有文件 ls / ls -h(human) ls -l(long) cd change directory 更改目录 cd … 回到上一级目录 ls list ls -l 会列出文件的详细信息 第一个字符是-表示普通文件 d表示是一个目录 rwx read …

load jsonl File with OpenAI API request results to pandas data.frame

题意:将包含 OpenAI API 请求结果的 jsonl 文件加载到 pandas DataFrame 中 问题背景: I have a large data set containing around 500k observation. It has a string variable that I want to create an embedding for. I used the OpenAI API to cr…

【练习15】拼三角

链接&#xff1a;A-拼三角_牛客小白月赛32 (nowcoder.com) 分析&#xff1a; 三角形的三个边a、b、c必须满足条件&#xff1a;ab>c,ac>b,bc>a 可以先将输入的六个数按从小到大排序&#xff0c;然后再枚举。 因为已经排好序了&#xff0c;如果第一行ab<c&#xff0c…

LeetCode2414题: 最长的字母序连续子字符串的长度(原创)

【题目描述】 字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说&#xff0c;字符串 "abcdefghijklmnopqrstuvwxyz" 的任意子字符串都是 字母序连续字符串 。 例如&#xff0c;"abc" 是一个字母序连续字符串&#xff0c;而 "acb" 和…

Linux启动流程,0,1,2进程,init进程,idle进程,内核态到用户态的kernel_execve(一)

&#xff1f;是&#xff0c;如果定义了&#xff0c;就按Makefile的&#xff0c;如果如下make编译时&#xff0c;就按如下 linux内核入口 进程0在用户空间看不到&#xff0c;因为他是内核进程 进程2就是守护进程&#xff0c;维护内涵运转的 一生二&#xff0c;二生三&#xff…

【网络安全的神秘世界】攻防环境搭建及漏洞原理学习

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 Kali安装docker 安装教程 PHP攻防环境搭建 中间件 介于应用系统和系统软件之间的软件。 能为多种应用程序合作互通、资源…

2021的OWASP TOP 10

OWASP&#xff08;开放Web应用安全项目&#xff09;是一个非营利性组织&#xff0c;旨在提高软件安全性。 每四年一个更新&#xff0c;2025年就会再次更新&#xff0c;到时候这篇文章也会实时更新。 我主要从定义&#xff0c;场景&#xff0c;原因&#xff0c;影响&#xff0…

特征工程与交叉验证在机器学习中的应用

数据入口&#xff1a;学生考试表现影响因素数据集 - Heywhale.com 本数据集提供了关于影响学生考试成绩的多种因素的全面概述。数据集包含了有关学习习惯、出勤率、家长参与、资源获取等方面的信息。 数据说明 字段名说明Hours_Studied每周学习的小时数Attendance出勤率&…

【2024研赛】【华为杯E题】2024 年研究生数学建模比赛思路、代码、论文助攻

思路将在名片下群聊分享 高速公路应急车道紧急启用模型 高速公路拥堵现象的原因众多&#xff0c;除了交通事故外&#xff0c;最典型的就是部分路段出现瓶颈现象&#xff0c;主要原因是车辆汇聚&#xff0c;而拥堵后又容易蔓延。高速公路一些特定的路段容易形成堵点&#xff0…

2024年华为杯数学建模研赛(B题) 建模解析| 网络吞吐量 |小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮2000人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;实现综合建模。独创复杂系统视角&#xff0c;帮助你解决研赛的难关呀。 完整内容可…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(二)-索引

场景 首先介绍测试的场景&#xff0c;本文schema定义 pdm文档索引&#xff0c;包括nested&#xff0c;扩展字段&#xff0c;文档属性扩展&#xff0c;其中_content字段是组件保留字段&#xff0c;支持文本内容 索引 索引服务索引的操作&#xff0c;包括构建&#xff0c;put …

计算机缺少vcruntime140.dll的解决方法,共有7种简单有效的方法

电脑出现找不到vcruntime140.dll,无法继续执行代码的情况&#xff0c;其实有很多原因。而且解决起来还是比较简单&#xff0c;主要是你要了解这个dll文件&#xff0c;今天小编就来给大家详细的分析一下找不到vcruntime140.dll的多种解决方法。 一、 问题概述 找不到vcruntime…

普元DWS - Linux下安装DWS标准版

1 前言 普元DWS全称是普元数据开发平台。 功能是对不同结构的数据进行转换处理&#xff0c;比如将MySQL的数据转换到达梦数据库中。 本文讲解如何在Linux下安装DWS标准版 2 DWS的版本 普元DWS有两个版本&#xff1a;微服务版和标准版。 微服务版是基于分布式部署的&#x…

linux----进程地址空间

前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、空间分布 二、栈和堆的特点 &#xff08;1&#xff09;栈堆相对而生&#xff0c;堆是向上增长的&#xff0c;栈是向下增长的。 验证&#xff1a;堆是向上增长的 这里我们看到申请的堆&#xff…