CPU: STM32
调试平台: STM32F103ZET和STM32F103VBT
软件平台: Keil uVision4
电路设计: Altium Designer v6.9
http://blog.csdn.net/u013686019/article/details/19834683
二、学习型红外遥控设备的各个模块实现
2.1 38KHz载波产生
常用的38KHz载波的产生方法:
- 455KHz晶振分频法
- 时基电路搭建法
- 微控制器PWM模块产生法
STM32的定时器分为高级定时器(TIMER1、TIMER2)、基本定时器(TIMER6、TIMER7) 和通用定时器(TIMER2~ TIMER5),具有非常强大的功能。其中通用定时器可以用于输入捕获、输出比较和PWM等,通过定时器的预分频器和RCC时钟控制预分频器,脉冲长度和波形周期能够在几个微秒到毫秒间进行调整。此外,每个通用定时器都是完全独立,不曾共享任何资源。通用定时器框图如下图所示:
本模块使用定时器TIM2的通道CH1输出占空比1:3的载波信号。操作流程图如下图所示:
示例代码如下:
/**
* TIM2_PWM_Init() TIM2的通道CH1的PWM模式初始化
* arr - 自动重装值 psc - 时钟预分频数
* 频率f = 72M/[(psc+1)*(arr+1)]
*/
void TIM2_PWM_Init(u16 arr,u16 psc)
{
/** 初始化结构体定义 */
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeB