static void TIM4_Init(void)     //普通定时函数
{
TIM4->ARR=1000-1; //设定计数器自动重装值
TIM4->PSC=168-1; //2000000 //预分频器 TIM4->CCMR1|=6<<4; //CH1 PWM1模式
TIM4->CCMR1|=6<<12; //CH2 PWM1模式
TIM4->CCMR2|=6<<4; //CH3 PWM1模式
TIM4->CCMR2|=6<<12; //CH4 PWM1模式 TIM4->CCER|=1<<0; //OC1 输出使能
TIM4->CCER|=1<<4; //OC2 输出使能
TIM4->CCER|=1<<8; //OC3 输出使能
TIM4->CCER|=1<<12; //OC4 输出使能 TIM4->CR1|=1<<7; //ARPE使能
TIM4->CR1|=1<<0; //使能定时器4
}
static void TIM8_Init(void) //普通定时函数
{
TIM8->ARR= 1023; //2000000 //设定计数器自动重装值
TIM8->PSC= (SystemCoreClock/880000)-1; //预分频器 TIM8->CCMR1|=7<<4; //CH1 PWM2模式
TIM8->CCMR1|=7<<12; //CH2 PWM2模式
TIM8->CCMR2|=7<<4; //CH3 PWM2模式
TIM8->CCMR2|=7<<12; //CH4 PWM2模式 TIM8->CCER|=1<<0; //OC1 输出使能
TIM8->CCER|=1<<4; //OC2 输出使能
TIM8->CCER|=1<<8; //OC3 输出使能
TIM8->CCER|=1<<12; //OC4 输出使能 TIM8->CR1|=1<<7; //ARPE使能
TIM8->CR1|=1<<0; //使能定时器8 TIM8->BDTR|=1<<15; //TIM1和TIM8高级定时器需配置
} RCC->APB1ENR|=1<<0; //TIM2时钟使能
RCC->APB1ENR|=1<<1; //TIM3时钟使能
RCC->APB1ENR|=1<<2; //TIM4时钟使能
RCC->APB1ENR|=1<<3; //TIM5时钟使能
RCC->APB1ENR|=1<<5; //TIM7时钟使能
RCC->APB1ENR|=1<<6; //TIM12时钟使能 RCC->APB2ENR|=1<<0; //TIM1时钟使能
RCC->APB2ENR|=1<<1; //TIM8时钟使能
RCC->APB2ENR|=1<<16; //TIM9时钟使能 //主电机PWM输出 ************
GPIO_AF_Set(GPIOD,12,2); //PD12,AF2 定时器4
GPIO_AF_Set(GPIOD,13,2); //PD13,AF2
GPIO_AF_Set(GPIOD,14,2); //PD14,AF2
GPIO_AF_Set(GPIOD,15,2); //PD15,AF2
GPIO_Set(GPIOD,PIN12|PIN13|PIN14|PIN15,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);//复用功能 GPIO_AF_Set(GPIOC,6,3); //PC6,AF3 定时器8
GPIO_AF_Set(GPIOC,7,3); //PD7,AF3
GPIO_AF_Set(GPIOC,8,3); //PD8,AF3
GPIO_AF_Set(GPIOC,9,3); //PD9,AF3
GPIO_Set(GPIOC,PIN6|PIN7|PIN8|PIN9,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);//复用功能
 
TIM4->CCR1 = 0;

STM32F4寄存器初始化:PWM输出的更多相关文章

  1. 关于普通定时器与高级定时器的 PWM输出的初始化的区别

    不管是普通定时器还是高级定时器,你用哪个通道,就在程序里用OC多少.比如CH3对应OC3 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;  TIM_ ...

  2. 关于STM32CubeMX使用LL库设置PWM输出

    HAL和LL库 HAL是ST为了实现代码在ST家族的MCU上的移植性,推出的一个库,称为硬件抽象层,很明显,这样做将会牺牲存储资源,所以项目最后的代码比较冗余,且运行效率大大降低,运行速度受制于fla ...

  3. PWM输出

    PWM(Pulse Width Modulation),脉冲宽度调制. 脉冲的频率由ARR控制,ARR越大频率越小:占空比由CCRx控制,CCRx越小占空比越大. 捕获/比较通道的输出部分(通道1) ...

  4. TIMER门控模式控制PWM输出长度

    TIMER门控模式控制PWM输出长度 参照一些网友代码做了些修改,由TIM4来控制TIM2的PWM输出长度, 采用主从的门控模式,即TIM4输出高时候TIM2使能输出 //TIM2 PWM输出,由TI ...

  5. STM32 PWM输出(映射)

    STM32 的定时器除了 TIM6 和 7.其他的定时器都可以用来产生 PWM 输出.其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出.而通用定时器也能同时产生多达 4 ...

  6. stm32 PWM输出学习

    STM32 的定时器除了 TIM6 和 7,其他的定时器都可以用来产生 PWM 输出.其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出.通用定时器也能同时产生多达 4路 ...

  7. STM8S PWM输出停止后 IO口电平输出

    STM8S有许多定时器支持PWM输出,但在停止定时器后,IO口电平到底是多少呢?或高或低. 因此,为了确定PWM停止输出电平后其对应的值是多少,我们在停止PWM输出时需要对CCMR1寄存器进行设置. ...

  8. STM32: TIMER门控模式控制PWM输出长度

    搞了两天单脉冲没搞定,无意中发现,这个利用主从模式的门控方式来控制一路PWM的输出长度很有效. //TIM2 PWM输出,由TIM4来控制其输出与停止 //frequency_tim2:TIM2 PW ...

  9. STM8 关闭PWM输出后的电平输出问题解决

    STM系列的单片机PWM输出如果被关断比如用TIM1_CtrlPWMOutputs进行停止输出后,电平的高低处于不确定的状态. 他取决于: 1.GPIO初始化的特性 2.关断那一刻时的电平 3.CCM ...

  10. STM32F103ZET6 PWM输出

    1.通用定时器的PWM功能 STM32F103ZET6有4个通用定时器,分别是TIM2.TIM3.TIM4.TIM5. 通用定时器由一个可编程预分频器驱动的16位自动装载计数器构成. 通用定时器的很多 ...

随机推荐

  1. day03-实现02

    实现02 3.实现任务阶段3-处理Servlet02 3.3Servlet规范设计 3.3.1MyServlet 该类模仿Servlet接口,为了简化,只声明了三个方法:init(),service( ...

  2. JS图片放大镜功能实现

    JS图片放大镜功能实现 技术关键点 1.左侧和上侧距离,在一个水平位置和垂直位置中有我们可以挪动的区域,就是原图片区域,鼠标挪动位置是一个块状位置,他的左侧和上侧距离浏览器上侧和左侧分别有一个长度,我 ...

  3. 基于python的数学建模---pulp库

    instance 代码: import pulp z = [2, 3, 1] a = [[1, 4, 2], [3, 2, 0]] b = [8, 6] aeq = [[1,2,4]] beq = [ ...

  4. JDK源码分析实战系列-PriorityQueue

    完全二叉树 一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下.从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树 ...

  5. html网页图片加载失败的友好处理方式

    网络环境总是多样且复杂的,一张网页图片可能会因为网路状况差而加载失败或加载超长时间,也可能因为权限不足或者资源不存在而加载失败,这些都会导致用户体验变差,所以我们需要对图片加载失败时的情况进行一个弥补 ...

  6. linux系统编码修改

    1. 查看当前系统默认采用的字符集locale 2. 查看系统当前编码echo $LANG如果输出为:en_US.UTF-8     英文zh_CN.UTF-8     中文 3. 查看系统是否安装中 ...

  7. python算法初步(一)

    python算法初步(一) 冒泡排序 时间效率O(n²)原理:依次比较相邻两个位置的元素大小,然后按照要求交换位置. #从中选出一个数据(作为最小数据),然后和其他的数据依次比较,如果有更小的数据,那 ...

  8. Qt的进程间通信,以服务器的形式,手把手教你VS上进行Qt的COM、ActivedQt Server的开发,比保姆还保姆(一)

    Qt的进程间通信,以Active服务器的形式,手把手教你VS上进行Qt的COM.ActivedQt Server的开发,比保姆还保姆 写在前面,文中的ID有部分对不上,因为我中途改了一下,我建议你在实 ...

  9. 第二篇:前端基础之CSS

    CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...

  10. CMS可视化---ECharts图表

    一.ECharts介绍 ECharts,全称Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,能够流畅的运行在PC以及移动设备上,兼容当前绝大部分浏览器.为我们许 ...