基于STM32的脉冲变极性弧焊与控制系统设计
2017-09-25 10:57
本文档的主要内容详细介绍的是STM32的脉冲输出定位控制源代码合集免费下载。
2019-09-26 17:41
针对提高 脉冲峰值 功率的测量精度的目的,通过利用微波信号处理、信号峰值检波、信号采样和数据处理相关理论,以AD8318对数检波芯片和AD9238高速A/D芯片为核心,以STM32为计算显示平
2011-08-29 15:09
采用基于Cortex-M3核的微控制器STM32F103CBT6设计了脉冲变极性弧焊控制系统。该系统利用片内的高级定时器实现了快速脉冲切换,以及脉冲频率、起始时间、占空
2010-09-16 15:08
void TIM3_Configuration(void){ TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;GPIO_InitTypeDef GPIO_InitStructure; TIM_ICInitTypeDef TIM3_ICInitStructure;NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); /*GPIOA Configuration*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); TIM_DeInit(TIM3);/***72M下定时值的计算((1+预分频EXTI_Prescaler)/72*(1+定时周期EXTI_Period))*/TIM_TimeBaseStructure.TIM_Period=0xffff;//预分频:72M/(TIM_Period+1)=72TIM_TimeBaseStructure.TIM_Prescaler=71;//定时时间:(1/TIM_Period)*(TIM_Prescaler+1)=0.0139UsTIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;//时钟分割TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);//Time base configurationTIM3_ICInitStructure.TIM_Channel = TIM_Channel_1; // 选择输入端 IC1 映射到 TI1 上TIM3_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;// 捕获下降沿TIM3_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上TIM3_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;//捕获在捕获输入上每探测到一个边沿执行一次TIM3_ICInitStructure.TIM_ICFilter = 0x00; //输入比较滤波器TIM_ICInit(TIM3, &TIM3_ICInitStructure); NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3 中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //先占优先级 2 级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //从优先级 0 级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道被使能NVIC_Init(&NVIC_InitStructure); //⑤根据指定的参数初始化 NV//TIM_ETRClockMode2Config(TIM3, TIM_ExtTRGPSC_DIV8, TIM_ExtTRGPolarity_Inverted, 4);//8分频TIM_ITRxExternalClockConfig(TIM3,TIM_TS_ETRF); //配置外部触发,否则不会计数//TIM3->SMCR=0X43;TIM_ITConfig( TIM3,TIM_IT_Update|TIM_IT_CC1,ENABLE);//允许更新中断和捕获中断TIM_Cmd(TIM3,ENABLE ); //⑥使能定时器 3}void TIM3_IRQHandler(void) {//Fre_flag=1;if((TIM3CH1_CAPTURE_STA&0X80)==0)//还未成功捕获{ //Fre_flag=2;if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET){ //Fre_flag=5;if(TIM3CH1_CAPTURE_STA&0X40)//已经捕获到高电平了{//Fre_flag=6;if((TIM3CH1_CAPTURE_STA&0X3F)==0X3F)//高电平太长了{//Fre_flag=7;TIM3CH1_CAPTURE_STA|=0X80;//标记成功捕获了一次TIM3CH1_CAPTURE_VAL=0XFFFF;}else TIM3CH1_CAPTURE_STA++;}}if (TIM_GetITStatus(TIM3, TIM_IT_CC1) != RESET)//捕获 1 发生捕获事件{//Fre_flag=3;if(TIM3CH1_CAPTURE_STA&0X40) //捕获到一个下降沿{ //Fre_flag=8;TIM3CH1_CAPTURE_STA|=0X80; //标记成功捕获到一次上升沿TIM3CH1_CAPTURE_VAL=TIM_GetCapture1(TIM3);TIM_OC1PolarityConfig(TIM3,TIM_ICPolarity_Rising); //设置为上升沿捕获}else //还未开始,第一次捕获上升沿{//Fre_flag=4;TIM3CH1_CAPTURE_STA=0; //清空TIM3CH1_CAPTURE_VAL=0;TIM_SetCounter(TIM3,0);TIM3CH1_CAPTURE_STA|=0X40; //标记捕获到了上升沿TIM_OC1PolarityConfig(TIM3,TIM_ICPolarity_Falling); //设置为下降沿捕获}}}TIM_ClearITPendingBit(TIM3, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位}
2015-07-07 14:50
STM32F407+CubeMX-使用TIM计算编码器的脉冲总数,并计算脉冲方向
2021-12-01 16:36
STM32的定时器可以配置为单脉冲模式,所谓的单脉冲就是通过配置定时器使其在一个可控延时后,产生一个脉宽可控的脉冲。使用STM3
2021-11-25 11:06
STM32定时器单脉冲输出模式
2021-12-08 20:51
STM32内部RTC时钟脉冲实验参考程序
2021-12-30 10:45
STM32F4_TIM输入波形捕获(脉冲频率)
2020-04-07 10:35