mbed学习之 PWMOUT
PWM通过一个周期内不同占空比来表征模拟量,应用非常广泛。mbed中提供了一个PWM类,来对PWM进行操作,可以分别设置占空比,周期,以及脉冲宽度。
因为这里是使用单片机内部TIM来生成PWM波的,所以并不是所有的IO都支持PWM输出,具体哪些Pin脚支持,需要自己查datasheet,首先第一步,先创建 PWM对象:
PwmOut mypwm(PB_0); // PB0 pin输出PWM波
接下来可以设置PWM的占空比
mypwm.write(0.1); // 0-->1之间,表示从0%-100%的占空比。
这个时候就已经会有波形输出了,默认PWM波的频率50Hz,周期20ms
另外,我们还可以通过下面三个函数设置PWM的周期,设置单位分别为s,ms,us。最大值受限于硬件平台,在stm32上最大是65536us,即0.065536s
period()
period_ms()
period_us()
通过下面三个函数可以设置PWM波的脉冲宽度,设置单位同样为s,ms,us。同样受限于硬件平台,stm32上最大为65535
pulsewidth()
pulsewidth_ms()
pulsewidth_us()
想知道当前输出占空比,可以通过read()来读取。
同样的,mbed都提供了操作符重载,我们可以通过 mypwm = 0.2 来代替write。 也可以通过类似 i = mypwm 。来获取当前pwm值 频率固定,占空比可调
PwmOut mypwm(PB_0); // PB0 pin输出PWM波 mypwm.period_us(10); //设定频率
mypwm = 0.1 //占空比 脉宽1us,频率100khz,占空比10% 脉宽3us,频率100khz,占空比30% 脉宽固定,占空比,频率改变
PwmOut mypwm(PB_0); // PB0 pin输出PWM波 mypwm.pulsewidth_us()(10); //设定脉冲宽度
mypwm.period_us(100); //设定频率,占空比 = 10/100 脉宽10us,周期100us,频率10khz,占空比 10% 脉宽10us,周期50us,频率20khz,占空比 20%
PWM通过一个周期内不同占空比来表征模拟量,应用非常广泛。mbed中提供了一个PWM类,来对PWM进行操作,可以分别设置占空比,周期,以及脉冲宽度。
因为这里是使用单片机内部TIM来生成PWM波的,所以并不是所有的IO都支持PWM输出,具体哪些Pin脚支持,需要自己查datasheet,首先第一步,先创建 PWM对象:
PwmOut mypwm(PB_0); // PB0 pin输出PWM波
接下来可以设置PWM的占空比
mypwm.write(0.1); // 0-->1之间,表示从0%-100%的占空比。
这个时候就已经会有波形输出了,默认PWM波的频率50Hz,周期20ms
另外,我们还可以通过下面三个函数设置PWM的周期,设置单位分别为s,ms,us。最大值受限于硬件平台,在stm32上最大是65536us,即0.065536s
period()
period_ms()
period_us()
通过下面三个函数可以设置PWM波的脉冲宽度,设置单位同样为s,ms,us。同样受限于硬件平台,stm32上最大为65535
pulsewidth()
pulsewidth_ms()
pulsewidth_us()
想知道当前输出占空比,可以通过read()来读取。
同样的,mbed都提供了操作符重载,我们可以通过 mypwm = 0.2 来代替write。 也可以通过类似 i = mypwm 。来获取当前pwm值
频率固定,占空比可调
PwmOut mypwm(PB_0); // PB0 pin输出PWM波 mypwm.period_us(); //设定频率 mypwm = 0.1 //占空比

脉宽1us,频率100khz,占空比10%

脉宽3us,频率100khz,占空比30%
脉宽固定,占空比,频率改变
PwmOut mypwm(PB_0); // PB0 pin输出PWM波
mypwm.pulsewidth_us()(); //设定脉冲宽度
mypwm.period_us(); //设定频率,占空比 = 10/100

脉宽10us,周期100us,频率10khz,占空比 10%

脉宽10us,周期50us,频率20khz,占空比 20%
mbed学习之 PWMOUT的更多相关文章
- mbed学习之Digital IO (一)
mbed的IO操作非常灵活,常见的关于Digital IO操作整理如下表 ,其中蓝色字体是构造函数,绿色字体的是操作符重载,使用时只要创建对象,就可以调用对应的方法来操作,并且每种都提供了操作符重载, ...
- 【FRDM-K64F学习笔记】使用ARM mbed和Keil MDK下载你的第一个程序
FRDM-K64F开发平台采用MK64FN1M0VLL12微控制器.该控制器包含一个带有浮点单元的ARM Cortex-M4内核.其最高工作频率为120MHz,具有256KB的RAM.1MB闪存以及许 ...
- mbed 初试(LinkNode 板卡)(2016-04-21)
前言 感谢论坛,感谢 LinkSrite,论坛活动申请了一个 LinkNode,体验了一下 mbed. 翻看完官方 wiki,大概了解了一下 mbed 的开发,然后做了 blink 和 pwm 的测试 ...
- mbed列--基于飞思卡尔FRDM KL25Z鼠标设计的高速实现
========================================================== 原创文章转载请注明:blog.csdn.net/guo8113 ========= ...
- 痞子衡嵌入式:史上最强ARM Cortex-M学习资源汇总(持续更新中...)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M学习资源. 类别 资源 版本 短评 官方汇总 cortex-m-resources / ARM公司专家Josep ...
- 使用mbed进行STM32板子的开发
keil太难用!keil太难用!keil太难用! keil点亮一个灯都超麻烦,什么鬼东西. mbed可以网络编程,打破了mac和windows的壁垒!写好,编译,然后下下来,在拖到板子里.就直接烧进去 ...
- STM32F042开发板学习实践
之前有粗略地学习过stm32F103的理论知识,但仅GPIO的配置.时钟配置就让人望而却步.现在手头有Nucleo STM32F042的开发板,而且ST已经推出STM32CubeMx图形化的工具软件, ...
- GMSSL学习总结1
接触GMSSL一段时间了,总结一点点想法 证书:DER格式.PEM格式 .DER = DER扩展用于二进制DER编码证书. .PEM = PEM扩展用于不同类型的X.509v3文件,是以“ - BEG ...
- Linux C++ 网络编程学习系列(7)——mbedtls编译使用
mbedtls编译使用 环境: Ubuntu18.04 编译器:gcc或clang 编译选项: 静态编译使用 1. mbedtls源码 下载地址: https://github.com/ARMmbed ...
随机推荐
- C#读写配置文件
.net有两种程序,一个是web程序,另外一种是app客户端程序,这两种程序的配置文件读写模式不同,web程序是直接读写马上生效.app客户端程序比如刷新加载一次. System.Configurat ...
- js实现两个页面之间跳转参数传递
html在设计时,规定跳转地址后加"?"表示从此开始为跟随页面地址跳转的参数. 有时候,我们希望获得相应的跳转前页面里的内容,这时候我们就可以考虑将内容以参数形式放到地址中传过来, ...
- dedecms有条件sql注入(x0day)
https://www.t00ls.net/thread-35569-1-1.html http://localhost/dedecms/plus/advancedsearch.php?mid=1&a ...
- 最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏
最近互联网招聘平台拉勾网在五一期间推出个“最难面试的IT公司”代码挑战活动,评选出了5个最难面试的IT公司,即:ThoughtWorks.Google.Unisys.Rackspace.Cypress ...
- Oracle总结
摘自:http://www.cnblogs.com/linjiqin/category/283838.html oracle decode用法 select decode( x , 1 , ‘x is ...
- frag General URL components
HTTP: The Definitive Guide 2.2.7 Fragments Some resource types, such as HTML, can be divided further ...
- GDB调试32位汇编堆栈分析
GDB调试32位汇编堆栈分析 测试源代码 #include <stdio.h> int g(int x){ return x+5; } int f(int x){ return g(x)+ ...
- iOS项目的本地化处理(多国语言)
项目的本地化就是:iOS系统在不同语言环境下自动切换语言,从而实现一个app发布到全世界各个国家的AppStore上. 我们不仅仅需要在iOS项目中做本地化处理,在上架iOS APP的时候,也需要做对 ...
- 使用 JDBC 和 JavaTemplate 查询SQL语句返回 List<Map<String,Object>>
使用JDBC执行sql语句返回List 类型: public class JdbcUtil { private static Log log = LogFactory.getLog(JdbcUtil. ...
- Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享
Nginx+Tomcat+Redis实现负载均衡.资源分离.session共享 CentOS安装Nginx http://centoscn.com/CentosServer/www/2013/0910 ...