母婴网站源码,什么是网站风格策划的重点,wordpress程序的主题,弹簧机东莞网站建设脉冲宽度调制脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效且应用十分广泛的技术#xff0c;例如直流电机的控制、开关电源的输出调制、信号的传递也离不开脉冲宽度调制。我们接下将要讨论的便是单片机中PWM的产生与应用。在STM32单片机中#xf… 脉冲宽度调制脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效且应用十分广泛的技术例如直流电机的控制、开关电源的输出调制、信号的传递也离不开脉冲宽度调制。 我们接下将要讨论的便是单片机中PWM的产生与应用。在STM32单片机中以F103C8为例它共有四个定时器每个定时器有四个PWM输出通道TIM1为高级定时器除了正常的四路PWM输出外前三路还可以有与之互补的PWM输出并且带有死区控制可以用于电机控制。 本文在介绍PWM使用的同时顺便推广一波STM32CubeMX的应用。相信对于很多新手来说上来就了解工程的配置和单片机一些寄存器的配置是比较吃力的。即便是一些老手也不一定完全了解整个单片机MDK文件工程的配置一直在套用类似于模板的东西遇到新型的单片机便是心有余而力不足并且现在官方标准库也是停止更新了对于一些新型的单片机是不支持的而STM32CubMX便可以很好的解决这个问题。即便是新手也可以轻松学会单片机整个工程文件的配置也能为后期的寄存器进一步学习打好基础。本文便以PWM呼吸灯程序为例使用STM32CubeMX进行相关外设的配置和MDK工程文件生成。在打开软件之后点击File选择新建工程然后在跳出的对话框中选择STM32F103C8(本文以此单片机为例)然后点击Start Project。首先点击时钟RCC页面进行配置由于小编使用的板子为外部时钟(虽然STM32单片机大多提供内嵌RC振荡电路但是其精度经出厂校准后也只有1%而外部晶振一般在10^-5甚至更低)所以选择在高速时钟选择Ceramic Resonstar没有使用低速时钟所以默认失能其它配置默认参数。接着进行SYS配置Debug模式选择Serial Wire(小编用的是SW与个人硬件配置有关)其它默认配置。 再接着配置时钟树相信大多数没有使用过Cube的小伙伴对于时钟树的理解可能比较抽象但是看看下图时钟树界面整个世界亮了有木有。 按照下图所示选择8M外部晶振经过锁相环后倍频为9倍(小编的板子是外接的8M晶振并且此单片机最高频率72M)然后接着给各个时钟线进行分频当哪个时钟框变紫色则说明超过这个时钟线的最大频率我们把各时钟线均配置为最大频率。(在不考虑低功耗的情况下均选择其性能最佳频率)在配置完了时钟树之后就可以配置定时器了小编的LED是挂在PA6引脚的拉低引脚电平灯亮。所以单击右侧单片机上的PA6引脚选择其所在的定时器3通道1在配置框内通道1选择生成PWM然后在下面进行参数配置定时器的分频和装载值填写在前期的推送中已经讲过这里把定时器周期配置为1ms具体不再赘述。下面有关PWM输出配置PWM模式和通道极性它们的作用如下图所示。接着在中断配置页面使能中断。在这里点亮一个呼吸灯的相关端口配置就结束了。在GPIO窗口界面我们还可以看到当单片机某个引脚被配置为PWM输出后这个引脚就被默认配置为推挽输出功能由于是默认配置下面就不放图了。最后进行工程文件设置。来到工程管理页面首先进行工程命名然后选择工程保存地址再选择IDE。(本文以KEIL也就是MDK工程文件)再进一步可以看到每个端口配置可以选择其所使用的函数库我们默认使用HAL库。在基础设置全部配置完毕之后点击右上角生成代码就OK了。第一次生成F1系列工程文件还需要下载一个固件包按照提示点击确定就可以了。到这里端口配置和工程生成就大功功告成了有木有感觉很简单(本文所示意的配置均为最基础配置其它的没有提到的配置选项和功能还有很多除了基础功能之外它甚至可以根据你的配置估算单片机的功耗。对于未提到的单片机配置选项可以自行查看单片机参考手册探索配置对于未提到功能感兴趣可以百度尝试食用。)配置完成之后用KEIL打开工程可以看到所有配置好的的初始化已经放在了相应的位置只需要开启使用便可以了本实验中我们用到了定时器3和它的PWM1输出通道开启输出。 接着书写呼吸灯程序由于程序单一便直接写在中断了。 我们通过num这个变量来不断改变输出PWM的占空比。由我们配置可知在计数寄存器TIM3-CNT未计到TIM3-CCR1的比较值之前,PWM输出为高电平LED灭之后输出低电平LED亮。呼吸灯可以划分为灯由亮到暗和由暗到亮两个过程。在本程序中我们使用flag变量标志灯所处在亮过程还是暗过程num由0-999循环控制PWM输出有效电平的占空比随之加长或变短就形成了灯的呼吸效果。本文生成的呼吸灯周期为2s.(有一点需要注意自己书写的代码必须放在工程中规定的地方就是各种BEGIN和END之间否则再次使用Cube进行配置后未放在指定位置的代码将被清理)要更好的呼吸效果和方式可以自行探索哦 STM32CubeMX软件可以从STM32官网免费获取 点击文章末尾阅读原文可获取完整工程文件百度云链接。 由于作者水平有限难免有错漏之处欢迎在公众号后台留言指出。欢迎关注我们微博B站公众号QQ群ACTION诚邀赞助联系邮箱neu_action163.com