当前位置:首页 > 单片机 > 单片机
[导读]由于前面买的核心板,供电老有问题,使得我现在的项目又改用了以前用的F103ZET6微控制器!1、实验目的1)产生脉宽任意可调的单脉冲(在允许的范围内)2、硬件:通用定时器3、通用定时器43、单脉冲模式介绍单脉冲模式

由于前面买的核心板,供电老有问题,使得我现在的项目又改用了以前用的F103ZET6微控制器!


1、实验目的

1)产生脉宽任意可调的单脉冲(在允许的范围内)


2、硬件:通用定时器3、通用定时器4


3、单脉冲模式介绍

单脉冲模式允许计数器响应一个激励,并在一个程序可控的延时之后,产生一个脉宽可程序控制的脉冲。

可以通过从模式控制器启动计数器,在输出比较模式或者PWM模式下产生波形。设置TIMx_CR1 寄存器中的OPM 位将选择单脉冲模式,这样可以让计数器自动的产生下一个更新

事情UEV时停止。

仅当比较值与计数器的初始值不同时,才能产生一个脉冲。启动之前(当定时器正在等待触发),必须配置如下:

向上计数方式:CNT (计数器寄存器) < CCRx (比较寄存器)< ARR(自动装载寄存器)

向下计数方式:CNT > CCRx。


需要在从TI2输入脚上检测到一个上升沿开始,延迟tDELAY 之后,在OC1上产生一个长度为tPULSE 的正脉冲。

具体的可以看参考手册。


4、软件设计


/**

******************************************************************************

*@filetimonepulse.c

*@authorCawen

*@versionV1.0

*@date2015-12-22

******************************************************************************

*/

/*Includes------------------------------------------------------------------*/

#include"timonepulse.h"

/*Privatevariables---------------------------------------------------------*/

uint16_tPrescalerValue=0;

/*

*FunctionName:GPIO_Configuration

*Description:ConfiguretheGPIODPins.

*Input:None

*Output:None

*Return:None

*Attention:None

*/

voidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

/*TIM4_CH1pin(PB.06)configuration*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOB,&GPIO_InitStructure);

/*TIM4_CH2pin(PB.07)configuration*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOB,&GPIO_InitStructure);

}

/*

*FunctionName:TIM4_Configuration

*Description:TIM4configuration:OnePulsemode

TheexternalsignalisconnectedtoTIM4_CH2pin(PB.07),

TheRisingedgeisusedasactiveedge,

TheOnePulsesignalisoutputonTIM4_CH1pin(PB.06)

TheTIM_Pulsedefinesthedelayvalue

The(TIM_Period-TIM_Pulse)definestheOnePulsevalue.

TIM2CLK=SystemCoreClock,wewanttogetTIM2counterclockat24MHz:

-Prescaler=(TIM2CLK/TIM2counterclock)-1

TheAutoreloadvalueis65535(TIM4->ARR),sothemaximumfrequencyvalue

totriggertheTIM4inputis24000000/65535=300Hz.

TheTIM_Pulsedefinesthedelayvalue,thedelayvalueisfixed

to682.6us:

delay=CCR1/TIM4counterclock=682.6us.

The(TIM_Period-TIM_Pulse)definestheOnePulsevalue,

thepulsevalueisfixedto2.048ms:

OnePulsevalue=(TIM_Period-TIM_Pulse)/TIM4counterclock=2.048ms.

*Input:None

*Output:None

*Return:None

*Attention:None

*/

voidTIM4_Configuration(void)

{

TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;

TIM_ICInitTypeDefTIM_ICInitStructure;

TIM_OCInitTypeDefTIM_OCInitStructure;

/*TIM4andGPIOBclockenable*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

/*Computetheprescalervalue*/

PrescalerValue=(uint16_t)(72000000/10000)-1;

/* Time base configuration */

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

stm32f103zet6是一种嵌入式-微控制器的集成电路(IC),是由ST公司开发的STM32F1系列的其中一种,芯体尺寸是32位,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是...

关键字: stm32f103zet6 datasheet 引脚图

随着生活水平的提高,定时器的用途也越来越广泛。比如对开水机、热水器的定时控制,现在有了大功率定时器,定时开机、定时关机,实现节能、安全、健康的使用。一、硬件设计

关键字: STM32 通用定时器 驱动开发

有时候,我们需要保存少量数据,但是用外扩的ROM又觉得不方便,这时候自然就想到了芯片内部是否自带flash(闪存),据我了解,stm32内部的应该是nor flash,因为如果是nand flash的话,肯定速度是跟不上...

关键字: Flash nor stm32f103zet6

定时器TIM3产生四路PWM波输出。首先介绍一下PWM吧,算是给自己充电,脉冲宽度调制(PWM),是英文“Pulse Width Modulation ”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制...

关键字: pwm stm32f103zet6 定时器

LPC1114内部一共有4个定时器,2个32位定时器,2个16位定时器,使用方式都一样,只是要注意使用16位定时器时,寄存器的值不要超出65535。给它们分别取名称为CT16B0、CT16B1、CT32B0、CT32B1...

关键字: lpc1114 通用定时器

进行串口配置的步骤一、初始化GPIO,配置GPIO模式一个结构体GPIO_InitTypeDef{GPIOMode_TypeDef GPIO_Mode//GPIO模式,输入,输出?uint16_t GPIO_Pin//哪...

关键字: stm32f103zet6 串口学习

在完成IO驱动彩屏的试验后,就准备着手使用FSMC来驱动彩屏,先了解一下预备知识一、所谓的FSMC机制简单介绍FSMC在这篇博文里面很清楚,推荐一下http://blog.csdn.net/king_bingge/art...

关键字: fsmc stm32f103zet6 驱动tft

新建一个工程,结构如下图所示:timer.h文件和timer.c文件用上一节的。在timer.h中增加两个变量和两个函数的声明,如下所示:#ifndef __NXPLPC11xx_TIME_H__#define __NX...

关键字: lpc1114 pwm 通用定时器

一、定时器的种类和时钟stm一共有8个定时器,其中tim1和tim8为高级定时器。tim2~tim7为通用定时器。高级定时器的时钟源挂载在apb2上(apb2=AHB),通用定时器挂载在apb1上(apb1=1/2AHB...

关键字: STM32 通用定时器

通用定时器大致有3个需要配置1.时基配置TIM_TimeBaseStructInit2.外设输出PWM配置TIM_OCStructInit一般用来输出PWM的3.外设输入捕捉配置TIM_ICStructInit对于来自与...

关键字: STM32 通用定时器 配置
关闭
关闭