6.定时器分时复用测量占空比

1.CUBEMAX配置

测量PA6,PA7输出的占空比,只需要把主要的配置,配置为A6口就行,A7口黄色表示配置不正确,不用管。

 2.软件代码

TIME.c中找到TIM3的初始化,在后面初始化A7口
void MX_TIM3_Init_PA7(void)
{/* USER CODE BEGIN TIM3_Init 0 *//* USER CODE END TIM3_Init 0 */TIM_ClockConfigTypeDef sClockSourceConfig = {0};TIM_SlaveConfigTypeDef sSlaveConfig = {0};TIM_MasterConfigTypeDef sMasterConfig = {0};TIM_IC_InitTypeDef sConfigIC = {0};/* USER CODE BEGIN TIM3_Init 1 *//* USER CODE END TIM3_Init 1 */htim3.Instance = TIM3;htim3.Init.Prescaler = 80-1;htim3.Init.CounterMode = TIM_COUNTERMODE_UP;htim3.Init.Period = 65535;htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;if (HAL_TIM_Base_Init(&htim3) != HAL_OK){Error_Handler();}sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK){Error_Handler();}if (HAL_TIM_IC_Init(&htim3) != HAL_OK){Error_Handler();}sSlaveConfig.SlaveMode = TIM_SLAVEMODE_RESET;sSlaveConfig.InputTrigger = TIM_TS_TI2FP2;//第一个地方sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING;sSlaveConfig.TriggerFilter = 0;if (HAL_TIM_SlaveConfigSynchro(&htim3, &sSlaveConfig) != HAL_OK){Error_Handler();}sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK){Error_Handler();}sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_FALLING;//第二个地方sConfigIC.ICSelection = TIM_ICSELECTION_INDIRECTTI;//第三个地方sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;sConfigIC.ICFilter = 0;if (HAL_TIM_IC_ConfigChannel(&htim3, &sConfigIC, TIM_CHANNEL_1) != HAL_OK){Error_Handler();}sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;//第四个地方sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;//第五个地方if (HAL_TIM_IC_ConfigChannel(&htim3, &sConfigIC, TIM_CHANNEL_2) != HAL_OK){Error_Handler();}/* USER CODE BEGIN TIM3_Init 2 *//* USER CODE END TIM3_Init 2 */}
循环函数中
static uint32_t time10ms;static uint8_t time3_sta=0;if(uwTick-time10ms>10){time10ms=uwTick;if(time3_sta==0)//PA6{duty1=(HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_2)+1)*100.0f/(HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_1)+1);MX_TIM3_Init_PA7();HAL_TIM_IC_Start(&htim3,TIM_CHANNEL_1);HAL_TIM_IC_Start(&htim3,TIM_CHANNEL_2);}if(time3_sta==1)//PA7{duty2=(HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_1)+1)*100.0f/(HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_2)+1);MX_TIM3_Init();HAL_TIM_IC_Start(&htim3,TIM_CHANNEL_1);HAL_TIM_IC_Start(&htim3,TIM_CHANNEL_2);}time3_sta=!time3_sta;}

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

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

相关文章

创新实训2024.05.25日志:Web应用技术选型

我们的web应用使用python web的fastapi框架,通过uvicorn开启web服务。 1. refs 官网文档:FastAPI (tiangolo.com) github:https://github.com/tiangolo/fastapi 2. 环境配置 python:3.11 uvicorn:0.29.0 pip install "uvicorn[stan…

老外卖27刀每月的教程已经更新

用了两天半的时间,边学习,边整理了一份老外的视频教程,涉及Facebook,YouTube,tiktok等大的流量平台,有案例,有分析,有如何做。 这个教程是老外讲的,没有什么玄乎的塑造价…

理解矩阵内积与矩阵乘法的区别及其应用

文章目录 矩阵内积(逐元素乘积)矩阵内积的用途矩阵乘法(矩阵积)矩阵乘法的用途区别总结结论 在数据科学、机器学习、计算机图形学和图像处理等领域,矩阵运算是非常基础且重要的操作。然而,矩阵内积和矩阵乘…

【java程序设计期末复习】chapter3 运算符、表达式和语句

运算符、表达式和语句 Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。 Java语言中的绝大多数运算符和C语言相同,基本语句,如条件分支语句、循环语句等也和C语言类似,因此,本章就主要知识…

聊聊ChatGPT的本质

这是鼎叔的第九十八篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。 阶段性总结下我对ChatGPT的基础理解,算是一篇学习思考笔记吧。其中难免有很多不准确的,或过于简略的地方,将来再迭代学习。 OpenAI做ChatGPT的底层逻辑…

GitLab的原理及应用详解(六)

本系列文章简介: 随着软件开发的不断进步和发展,版本控制系统成为了现代软件开发过程中不可或缺的一部分。而GitLab作为其中一种流行的版本控制工具,在软件开发领域享有广泛的应用。GitLab不仅提供了强大的版本控制功能,还集成了项…

如何利用线程池实现互联网验证码保护服务

如何利用线程池实现互联网验证码保护服务 1、业务背景与实现思路2、代码实操1、业务背景与实现思路 首先介绍一下业务背景,假设我们的系统是一个短视频播放网站,每个新加入的用户都需要注册账号并绑定手机号。为了验证用户手机的正确性,我们的系统会发送一条验证码到用户注…

HBase到底是列式存储还是行式存储?

行存和列存 在行存储的数据库系统中,一行中的所有字段值都是连续存储的;在基于行存储的表中,即使只需要读取指定列时,也需要先将对应行的数据读取到内存,再过滤目标列,这样会导致过多的磁盘IO、内存和时间…

队列——链式存储

核心思路: 1、首先定义队列结点,包含数据域和指针域;然后定义链式队列,包含队列节点类型的队头和队尾指针。 2、初始化:     带头结点:给头结点分配内存,然后队头和队尾指针指向头结点&…

每日一题 字符串排序

目录 1.前言 2.题目解析 3.算法原理 4.代码实现 1.前言 在编程练习中,字符串的全排列问题是一个经典的算法问题。通过对字符串进行全排列,可以得到该字符串的所有可能的排列组合。本文将探讨如何对含有重复字符的字符串进行全排列,并且解决…

K8s的kubectl的基本操作

K8s的kubectl的基本操作 K8s基本信息的查看 查看版本信息 kubectl versio查看资源对象简写 kubectl api-resources查看集群信息 kubectl cluster-info配置kubectl自动补全 source <(kubectl completion bash)查看master节点状态 kubectl get cs查看命名空间 kubectl…

10.js预解析

就是在代码执行之前&#xff0c;对代码进行通读解释 只解析两个内容&#xff1a; &#xff08;1&#xff09;对var声明的变量 &#xff08;2&#xff09;声明式函数 &#xff08;1&#xff09;对var声明的变量进行提前声明&#xff0c;但不赋值 var x console.log(x) //undefi…

【找出第 K 大的异或坐标值】python

4层循环暴力超时 class Solution:def kthLargestValue(self, matrix: List[List[int]], k: int) -> int:nums[]for a in range(len(matrix)):for b in range(len(matrix[0])):num0for i in range(a1):for j in range(b1):num^matrix[i][j]nums.append(num)nums.sort()retu…

web安全渗透测试十大常规项(一):web渗透测试之CSRF跨站请求伪造

渗透测试之CSRF跨站请求伪造 CSRF跨站请求伪造 CSRF跨站请求伪造

类的内存对齐位段位图布隆过滤器哈希切割一致性哈希

文章目录 一、类的内存对齐1.1规则1.2原因 二、位段2.1介绍2.2内存分配问题2.3跨平台问题2.4使用的注意事项 三、位图的应用3.1 给40亿个不重复的无符号整数&#xff0c;找给定的一个数。&#xff08;int的范围可以到达42亿多&#xff09;3.2 给定100亿个整数&#xff0c;设计算…

Golang实现文件复制

方法&#xff1a;三种 package zdpgo_fileimport ("errors""io""os" )// CopyFile 使用io.Copy进行文件的复制&#xff0c;同时也会复制文件的所有权限 // param src 复制文件 // param des 目标文件 // return error 错误信息 func CopyFile(s…

2024年弘连网络FIC大会竞赛题线下决赛题

总结&#xff1a; FIC决赛的时候&#xff0c;很多小问题没发现&#xff0c;在pve平台做题确实很方便。 这套题目复盘完&#xff0c;服务器这块的知识确实收获了很多&#xff0c;对pve集群平台和网络拓扑也有了一定的认识&#xff0c;感谢各位大佬悉心指导。 接下来&#xff0…

【FPGA】Verilog:奇校验位生成器的实现(Odd Parity bit generator)

解释奇数奇偶校验位生成器和检查器的仿真结果及过程。 真值表和卡洛图: Odd Parity Bit Generator A B C

怎么在pyqt中显示matplotlib的绘图?

想要在pyqt中显示matplotlib的绘图&#xff0c;在绘图时&#xff0c;其实不必使用以下语句&#xff1a; matplotlib.use("Qt5Agg") # 声明使用QT5最关键的语句是&#xff1a; from matplotlib.backends.backend_qt5agg import FigureCanvasQTAggFigureCanvasQTAgg…

学 Python 具体能干什么?

Python 是一种功能强大、用途广泛的编程语言&#xff0c;因其简洁易读的语法和丰富的库生态系统而备受欢迎。学习 Python后&#xff0c;你可以从事以下几方面的工作&#xff1a; 1. Web 开发 Python 有很多流行的 Web 框架&#xff0c;如&#xff1a; Django&#xff1a;一个…