基于stm32的pwm呼吸灯
2016-05-07 11:52
260 查看
这一节的程序所涉及到的硬件是比较简单,主要是考察对stm32时钟的应用
原理性质的东西我就不多说了,参考书目为:
《STM32库开发实战指南》 刘火良,杨森著
《STM32开发指南(库函数版本)》 正点原子著
使用定时器来控制I/O口输出PWM波形,从而驱动LED灯出现类似呼吸频率一般的亮灭。
硬件电路图:
![](https://img-blog.csdn.net/20160507114724431)
我的收获:
1
![](https://img-blog.csdn.net/20160507113401647)
这是STM32数据手册上对TIM3通用定时器复用功能重映象的描述,假设让PA6作为PWM输出,从图中可以看出PA6对应TIM3的通道1,
使能TIM3通道1的函数为
同样的,如果想要使能PA7,它对应的是TIM3的通道2,那么使能通道2的函数便是:
以此类推,需要注意,使能不同相同定时器不同通道的函数是有一点小差别的,防止在程序中调用TIM_OC1Init()函数来使能TIM3通道2这种情况的发生。
2
![](https://img-blog.csdn.net/20160507114208225)
注意看这里,假设使用的是TIM3的通道1,那么这里就要写成
类似的如果用TIM3定时器的通道2,这里就要相应的改为
这同样是为了防止本来计划使用的是TIM3的通道1,反而在这里自摆乌龙写为了TIM->CCR2的情况,这样的错误一般很隐蔽,不容易查找。
相应的程序已经上传,但是不知道为什么在这里无法显示程序的下载地址,需要下载可以去我的资源里下载。
工程文件为
Progect–>RVMDK(uv4)–>iSO_STM32
原理性质的东西我就不多说了,参考书目为:
《STM32库开发实战指南》 刘火良,杨森著
《STM32开发指南(库函数版本)》 正点原子著
使用定时器来控制I/O口输出PWM波形,从而驱动LED灯出现类似呼吸频率一般的亮灭。
硬件电路图:
我的收获:
1
这是STM32数据手册上对TIM3通用定时器复用功能重映象的描述,假设让PA6作为PWM输出,从图中可以看出PA6对应TIM3的通道1,
使能TIM3通道1的函数为
TIM_OC1Init();
同样的,如果想要使能PA7,它对应的是TIM3的通道2,那么使能通道2的函数便是:
TIM_OC2Init()
以此类推,需要注意,使能不同相同定时器不同通道的函数是有一点小差别的,防止在程序中调用TIM_OC1Init()函数来使能TIM3通道2这种情况的发生。
2
注意看这里,假设使用的是TIM3的通道1,那么这里就要写成
TIM3->CCR1
类似的如果用TIM3定时器的通道2,这里就要相应的改为
TIM3->CCR2
这同样是为了防止本来计划使用的是TIM3的通道1,反而在这里自摆乌龙写为了TIM->CCR2的情况,这样的错误一般很隐蔽,不容易查找。
相应的程序已经上传,但是不知道为什么在这里无法显示程序的下载地址,需要下载可以去我的资源里下载。
工程文件为
Progect–>RVMDK(uv4)–>iSO_STM32
相关文章推荐
- 机器学习实践指南(二)—— 正则化参数
- iOS学习笔记——数据请求
- Redis之数据Set和Get类型不一致问题
- android studio 自定义gradle变量
- rsync+inotify
- 面试题
- 透明状态栏与沉浸式
- Json解析
- CGGeometry类定义几何元素的结构和操作几何元素的函数。
- 第十周学习进度条
- 哈弗曼编码
- [置顶] 计算复杂性学习2-多带图灵机模拟
- [Android Studio系列(三)]Android Studio 编译、同步慢的解决方法
- Cordova/CDVViewController.h file not found 解决办法
- 我读《精进》——03 即刻行动
- geotrellis使用(四)geotrellis数据处理部分细节
- 20160507note
- Ubuntu搭建Openstack平台(kilo)(五.neutron(二)网络节点与计算节点)
- 八大排序算法 之 直接插入排序
- T-SQL优化