STM32F103的高级定时器1带死区互补输出配置

发布者:dong125612最新更新时间:2018-06-29 来源: eefocus关键字:STM32F103  高级定时器  死区互补  输出配置 手机看文章 扫描二维码
随时随地手机看文章

STM32F103的高级定时器1带死区互补输出配置
转载 2016-03-12 13:58:52

标签:stm32

原文:http://blog.sina.com.cn/s/blog_7fbb077f0102wjqt.html


void TIM1_PWMConfig()

{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
GPIO_Config( GPIOA,RCC_APB2Periph_GPIOA,GPIO_Mode_AF_PP,GPIO_Pin_8|GPIO_Pin_9);
GPIO_Config( GPIOB,RCC_APB2Periph_GPIOB,GPIO_Mode_AF_PP,GPIO_Pin_13|GPIO_Pin_14);


TIM_TimeBaseInitStructure.TIM_Period=1799;
TIM_TimeBaseInitStructure.TIM_Prescaler=0;
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStructure);

   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_OutputNState =TIM_OutputNState_Enable;
    TIM_OCInitStructure.TIM_Pulse =0;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OCInitStructure.TIM_OCNPolarity =TIM_OCNPolarity_High; // 高电平为有效
    TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
    TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
TIM_OC1Init(TIM1,&TIM_OCInitStructure);

//TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
    TIM_OCInitStructure.TIM_Pulse =0;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OCInitStructure.TIM_OCNPolarity =TIM_OCNPolarity_High;
    TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
    TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
TIM_OC2Init(TIM1,&TIM_OCInitStructure);

//TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);

TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Enable;
TIM_BDTRInitStructure.TIM_Break=TIM_Break_Disable;//TIM_Break_Enable;
TIM_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakPolarity_High;
TIM_BDTRInitStructure.TIM_DeadTime=28;
TIM_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_OFF;
TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Disable;//TIM_OSSIState_Disable;//TIM_OSSIState_Enable;
TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Disable;//TIM_OSSRState_Disable;//TIM_OSSRState_Enable;
TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);
TIM_ARRPreloadConfig(TIM1,ENABLE);
TIM_CtrlPWMOutputs(TIM1,ENABLE);//MOE=1,开启OC和OCN输出
TIM_Cmd(TIM1,ENABLE);

}


其他函数:

控制高级定时器某个通道及其反相通道单处输出或关闭

void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx)

void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN)


输出波形演示:

CH1、CH1N、CH2、CH2N同时输出

 CH1、CH1N、CH2打开,关闭CH2N的输出


关键字:STM32F103  高级定时器  死区互补  输出配置 引用地址:STM32F103的高级定时器1带死区互补输出配置

上一篇:STM32F051 刹车功能问题及解决方案
下一篇:STM32定时器----通用定时器输出带死区互补PWM

推荐阅读最新更新时间:2024-03-16 16:07

STM32F103之系统时钟初始化及延迟函数
一、简介 本文以STM32F103编程为例,介绍STM32F103系统时钟初始化及延迟函数编写 二、实验平台 电脑平台:Windows7 64位旗舰 编译软件:Keil5 硬件平台:STM32F103RC 三、版权声明 四、实验前提 1、在进行本文步骤前,请先安装keil5版本;准备好STM32F103RC硬件平台。 五、基础知识 暂无 六、源码地址 暂无 七、关联文章 暂无 八、实验内容 1.初始化系统时钟 /*外部时钟最高72MHz 内部时钟最高64MHz*/ typedef enum{ HAL_CLOCK_HSE_SYS = (unsigned char
[单片机]
STM32F103x的USB多路数据采集系统设计
   引 言   目前,在工业和许多其他场合依然使用基于PCI板卡、ISA板卡的数据采集系统,价格昂贵、接插不方便。USB(Universal Serial Bus,通用串行总线)是计算机上的一种新型接口技术,它使得计算机和外部设备的连接十分方便。USB具有高效、快速、价格低廉、体积小和支持热拔插等优点,使其成为数据采集系统设计的新宠儿。然而当前的USB数据采集设备大多采用的是专门的USB接口芯片,而且根据不同的需求,需要外扩一定数量的A/D 转换芯片,使得接口非常复杂,增加了系统的开发难度,进而对系统的稳定性产生影响。本设计采用意法半导体公司开发的基于Cortex-M3内核的新型32 位微控制器STM32F103x作为主控芯片
[单片机]
STM32F103与STM32F407的SPI调试笔记
在写入SPI数据数,必须调用 SPI_I2S_ReceiveData(SPI1);读取一次,不然会对数据的读取不正确 u8 SPI_Flash_GetChar(void){ u8 Data = 0; Data = SPI_I2S_ReceiveData(SPI1);//必须读取一次,应该是读后清空寄存器 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); //SPI_I2S_ClearITPendingBit(SPI1,SPI_I2S_FLAG_TXE); SPI_I2S_SendData(SPI1, 0xff); while (S
[单片机]
STM32F103ZET6 启动模式
STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)SRAM = 芯片内置的RAM区,就是内存啦。 3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表: BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。 BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家
[单片机]
STM32F103的PC13、PB3和PB4定义为普通IO口使用
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// PC13初始化: PC13的.c文件初始化: void GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AP
[单片机]
stm32f103串口dma配置实例
1. 串口配置 void USART3_Configuration(uint32_t Baudrate) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStructure.GPIO_Mode=GP
[单片机]
STM32F103 的晶振由8M改为了12M
看逻辑地址是否统一编址。 FLASH,RAM在同一个逻辑地址空间的,都是直接用用const,如arm,stm8,msp430等。 FLASH,RAM逻辑地址空间分开的,要用其它办法,通常是特殊关键字,__flash,__code等。 如AVR,8051等。 注:const本身并没有flash的意思。 如果flash,ram逻辑地址统一编址,那么编译器把全局或静态const变量分配到FLASH,RAM都可以。 为了节省ram,通常编译器会把全局或静态const变量分配到FLASH。 如果flash,ram逻辑地址分开编址,那么全局或静态const变量只能放到ram所在的逻辑地址空间,而无法放到FLASH。 注:逻辑地址统一编址,可以
[单片机]
基于STM32F103RB单片机的、细分度可调的步进电机驱动器设计
步进电机是一种运用广泛的控制电机,其特征是不使用位置反馈回路就能进行速度控制及定位控制,即所谓的电机开环控制。相对于伺服电机,步进电机有着成本低廉,控制简单等优点,尤其是两相混合式步进电机,在工业运动控制系统中有着广泛的应用。然而,传统的驱动方式,比如单电压驱动、高低电压驱动、斩波恒流驱动等等,虽然已经应用十分成熟,但是只限于低速运行,并且细分度一般限制在1/2步距,无法很好消除低频振荡,以及定位精度差等缺点。细分驱动的出现很好地弥补了这一缺点。 常见的细分控制器一般由MCU、专用逻辑驱动芯片以及功率驱动模块组成,这样的驱动器虽然能满足多细分驱动,但由于细分数量和效果会受到逻辑驱动芯片的影响,并且无法调整细分数和限流值、从
[单片机]
基于<font color='red'>STM32F103</font>RB单片机的、细分度可调的步进电机驱动器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved