| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32笔记:脉冲宽度计 单输入捕获+中断方式 -> 正文阅读 |
|
[嵌入式]STM32笔记:脉冲宽度计 单输入捕获+中断方式 |
本文介绍如何用STM32F107VC(Waveshare Open107V实验板)实现高精度的脉冲宽度计(占空比)。 开发环境: IDE:STM32CubeIDE 1.8 固件库:STM32Cube_FW_F1_V1.8.4 函数发生:RIGOL DG5072函数信号发生器,产生0-3.3V的方波,10KHz 硬件:Waveshare Open107V,STM32F107VC, 晶振25MHz,工作频率72MHz 思路: *利用定时器的输入捕获功能测量方波的占空比,时钟为系统时钟72MHz。 *将Channel 1 (CH1)设为上升沿捕获,信号同时输入到CH1 *启用CH1输入捕获中断,在中断产生时,切换上升沿出发或下降沿触发,在信号上升沿,CH1的比较寄存器自动获得当前计数值,存入数组tcBuf[0][n],随后切换为下降沿触发,在信号下降沿,CH1的比较寄存器自动获得当前计数值,存入tcBuf[1][n]. *用TIM2定时中断,每1秒钟计算一次脉冲宽度、频率值和占空比,发送到串口1。使用一组数据即可,或者可以多组取平均,或者进行滤波以提高精度。 *在串口1收到"DATA"指令时,停止全局中断,将tcBuf[0][0...1023]和tcBuf[1][0...1023]依次发回计算机。然后开启全局中断,继续。 测试结果:
注意: ? ? ? ? *另外,占空比接近100%的时候,测量结果是不可靠的。相比之下,DMA方式更为可靠。 ? ? ? ? 为什么?请热烈讨论。。。 关键代码:??
详细代码,请参考:
DMA方式请参考: |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:27:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |