F407_23_定时器_输出比较实验

1

1> 实验目的

1

通过F407定时器2,比较输出功能(电平翻转模式),在PA15引脚输出上图波形;


2> 理论基础

3

例如,使用定时器输出通道1,计算器从0~100循环计算,比较寄存器值为50,则每当计数器值为50时,OC1电平翻转;

2.1> 8种输出模式

8种输出模式:【OCxM[2:0]】
1》(000) 冻结:对输出无作用,定时器用于基本定时器功能;
2》(001) 有效电平:TIMx_CNT =TIMxCCRx,OCxREF为高电平;
3》(010) 无效电平:TIMx_CNT =TIMxCCRx,OCxREF为低电平;

4》(011) 电平翻转:TIMx_CNT =TIMxCCRx, OCxREF电平翻转, 可用于控制步进电机;

5》(100) 强制为无效电平: OCxREF = 0;
6》(101) 强制为有效电平: OCxREF = 1;


7》(110) PWM1:
递增计数模式: TIMx_CNT < TIMxCCRx, OCxREF = 1; 否则,OCxREF = 0;
递减计数模式: TIMx_CNT > TIMxCCRx, OCxREF = 0; 否则,OCxREF = 1;


8》(111) PWM2:
递增计数模式: TIMx_CNT < TIMxCCRx, OCxREF = 0; 否则,OCxREF = 1;
递减计数模式: TIMx_CNT > TIMxCCRx, OCxREF = 1; 否则,OCxREF = 0;

3> 硬件电路

1

4> 程序设计

4.1> Tim2初始化

1
使能中断:
2

4.2> Tim2翻转输出

/* 初始化 */
bsp_tim2_init();

/* 启动Tim2 */
HAL_TIM_OC_Start_IT(&htim2, TIM_CHANNEL_1);

/* 中断处理 */
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
	printf("HAL_TIM_OC_DelayElapsedCallback");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值