实验目的:选定一个引脚(PA1)PWM产生,然后用输入捕获查看上升沿和下降沿之间的计数值,然后根据分频数计算占空比,再串口输出测量到的频率和占空比。

配置视频:补充----测量占空比的MX配置_哔哩哔哩_bilibili

这两个和时钟配置不必说。

以上是输入捕获配置(注意内部时钟,直接和间接模式,打开中断,一个上升沿,一个下降沿触发中断)

上图是配置的PWM(不需要开中断)

上图是串口配置(别忘了开中断)

最后生成代码之后,再在main.c文件中定义函数:

int t=0,t1=0,f=0;
float Kong=0;void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)//一定注意是输入捕获的中断回调函数(之前用错,看了50分钟才发现!)
{if(htim->Channel==HAL_TIM_ACTIVE_CHANNEL_2)//如果是CH2(检测上升沿的位置){t1=HAL_TIM_ReadCapturedValue ( &htim2,TIM_CHANNEL_2 );//闭环之后,先获得一个周期的计数值__HAL_TIM_SetCounter(&htim2 ,0);//再把计数值归零}else t=HAL_TIM_ReadCapturedValue ( &htim2,TIM_CHANNEL_1 );//检测到下降沿然后记录计数值HAL_TIM_IC_Start_IT (&htim2 ,TIM_CHANNEL_1);//这两行重新打开中断HAL_TIM_IC_Start_IT (&htim2 ,TIM_CHANNEL_2);}

主函数程序:

int main(void)
{char s[20];HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_TIM2_Init();MX_TIM3_Init();MX_USART1_UART_Init();HAL_TIM_PWM_Start (&htim3 ,TIM_CHANNEL_2);//开启PWM__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 100);//配置占空比HAL_TIM_IC_Start_IT (&htim2, TIM_CHANNEL_2);//首先开启中断HAL_TIM_IC_Start_IT (&htim2, TIM_CHANNEL_1);while (1){f=1000000/t1;//因为计数器是79分频的Kong=((float )t/(float )t1)*100;sprintf(s,"频率:%d\r\n占空比:%.2f\r\n",f,Kong);HAL_UART_Transmit (&huart1 ,(unsigned char*)s,strlen (s),50);//串口打印HAL_Delay (500);}}

(连接好PA1和PA7后)串口调试助手显示界面:

蓝桥杯学习笔记十:PWM占空比测量实验相关推荐

  1. 【蓝桥杯学习笔记】9. 解立方根——二分法+牛顿迭代法

    系列文章目录 [蓝桥杯学习笔记]1. 入门基本语法及练习题 [蓝桥杯学习笔记]2. 常用模型----最大公约数和最小公倍数 [蓝桥杯学习笔记]3. 质数判断 [蓝桥杯学习笔记]5. 矩阵乘法 [蓝桥杯 ...

  2. 蓝桥杯学习笔记--工厂灯光控制系统(小蜜蜂笔记作业)

    文章目录 前言 一.功能要求 1.功能图 二.硬件分析 1.功能一硬件电路: 2.功能二硬件电路: 3.功能三硬件电路: 4.功能四硬件电路: 三.代码 1.整体流程(主函数) 2.138选择函数与关 ...

  3. 蓝桥杯学习笔记三:Delay函数毫秒变微秒

    平时的HAL_Delay()都是毫秒单位的,但是进去这个函数看看的话,也看不出来是咋回事,我也不理解.但是就说在网上知道了一个方法:用SysTick_Config();这个函数就是来控制Delay函数 ...

  4. 蓝桥杯嵌入式——第十二届蓝桥杯嵌入式国赛

    蓝桥杯嵌入式--第十二届蓝桥杯嵌入式国赛 之前准备省赛的时候用的是旧版的STM32F103,从准备国赛开始就用新版STM32G431平台了,主要是想经过新版的准备学习一下HAL库以及CubeMX的使用 ...

  5. 突击蓝桥杯嵌入式(十二)——第十二届省赛第一场真题 停车场

    突击蓝桥杯嵌入式(十二)--第十二届省赛第一场真题 停车场 一.题干 二.题目解析 所需: PA7 PWM LED(锁存器) 串口9600 LCD 按键4个,整体难在逻辑,我们先配置好硬件,进入工程 ...

  6. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  7. Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

    Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...

  8. IOS之学习笔记十五(协议和委托的使用)

    1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...

  9. 吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进

    吴恩达<机器学习>学习笔记十四--应用机器学习的建议实现一个机器学习模型的改进 一.任务介绍 二.代码实现 1.准备数据 2.代价函数 3.梯度计算 4.带有正则化的代价函数和梯度计算 5 ...

  10. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

最新文章

  1. 这些 AI 大咖的实践干货,从事人工智能的你应该知道
  2. 查找数组中第二个最小元素
  3. [转]写好shell脚本的13个技巧
  4. 计算机用英语表示方法有哪些,在计算机领域中,通常用英文单词“bit”来表示( )...
  5. mysql的安装备份恢复_安装使用Percona XtraBackup来备份恢复MySQL的教程
  6. 互补品的交叉弹性系数_重庆事业单位综合备考:需求价格弹性和需求交叉价格弹性有何区别...
  7. python rarfile不支持unicode_python – zipfile提取时的unicode错误
  8. 解决nginx服务器显示txt文本为乱码的问题
  9. 目标检测应用竞赛 | 天池铝型材表面瑕疵(含数据集、详细解决方案)
  10. 量子机器学习(QML)(一):量子计算基础
  11. MongoDB 下载和安装
  12. java日期函数_java常用日期函数总结
  13. 201671030108 +词频统计软件项目报告
  14. 【征文通知】PRCV 2021 论文征集
  15. 第一篇博客--大学成长指南
  16. 8/30 Hourglass网络原理
  17. xxljob默认登录_XXL-JOB快速入门
  18. m3u8手机批量转码_M3U8批量转换器(Android)开发
  19. python哪个机构教的好_学Python去哪家机构比较好?老男孩教育怎么样?
  20. 【rf】robotframework自动化测试环境搭建

热门文章

  1. 在ubuntu中使用visual studio code对C/C++文件调试
  2. html实心向右三角形,css 如何在html页面上输出一个左三角形或右三角形呢?
  3. 二元隐函数求二阶偏导_多元函数隐函数微分 二阶偏导的求法
  4. 组播源发现协议-MSDP
  5. 网络工程师MSDP 基本介绍
  6. jmeter性能测试实战——基础篇
  7. 关于使用ArcGIS裁剪栅格后像元值发生变化的问题
  8. java servlet继承_servlet继承什么类
  9. 解决虚拟机启动失败或进入应急模式的问题
  10. 金蝶KIS商贸高级版V6.1开发实现‘序时簿中心’增加'联系人'字段列