STM32F4寄存器初始化:PWM输出
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输出的更多相关文章
- 关于普通定时器与高级定时器的 PWM输出的初始化的区别
不管是普通定时器还是高级定时器,你用哪个通道,就在程序里用OC多少.比如CH3对应OC3 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_ ...
- 关于STM32CubeMX使用LL库设置PWM输出
HAL和LL库 HAL是ST为了实现代码在ST家族的MCU上的移植性,推出的一个库,称为硬件抽象层,很明显,这样做将会牺牲存储资源,所以项目最后的代码比较冗余,且运行效率大大降低,运行速度受制于fla ...
- PWM输出
PWM(Pulse Width Modulation),脉冲宽度调制. 脉冲的频率由ARR控制,ARR越大频率越小:占空比由CCRx控制,CCRx越小占空比越大. 捕获/比较通道的输出部分(通道1) ...
- TIMER门控模式控制PWM输出长度
TIMER门控模式控制PWM输出长度 参照一些网友代码做了些修改,由TIM4来控制TIM2的PWM输出长度, 采用主从的门控模式,即TIM4输出高时候TIM2使能输出 //TIM2 PWM输出,由TI ...
- STM32 PWM输出(映射)
STM32 的定时器除了 TIM6 和 7.其他的定时器都可以用来产生 PWM 输出.其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出.而通用定时器也能同时产生多达 4 ...
- stm32 PWM输出学习
STM32 的定时器除了 TIM6 和 7,其他的定时器都可以用来产生 PWM 输出.其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出.通用定时器也能同时产生多达 4路 ...
- STM8S PWM输出停止后 IO口电平输出
STM8S有许多定时器支持PWM输出,但在停止定时器后,IO口电平到底是多少呢?或高或低. 因此,为了确定PWM停止输出电平后其对应的值是多少,我们在停止PWM输出时需要对CCMR1寄存器进行设置. ...
- STM32: TIMER门控模式控制PWM输出长度
搞了两天单脉冲没搞定,无意中发现,这个利用主从模式的门控方式来控制一路PWM的输出长度很有效. //TIM2 PWM输出,由TIM4来控制其输出与停止 //frequency_tim2:TIM2 PW ...
- STM8 关闭PWM输出后的电平输出问题解决
STM系列的单片机PWM输出如果被关断比如用TIM1_CtrlPWMOutputs进行停止输出后,电平的高低处于不确定的状态. 他取决于: 1.GPIO初始化的特性 2.关断那一刻时的电平 3.CCM ...
- STM32F103ZET6 PWM输出
1.通用定时器的PWM功能 STM32F103ZET6有4个通用定时器,分别是TIM2.TIM3.TIM4.TIM5. 通用定时器由一个可编程预分频器驱动的16位自动装载计数器构成. 通用定时器的很多 ...
随机推荐
- Go语言核心36讲04
我们已经知道,环境变量GOPATH指向的是一个或多个工作区,每个工作区中都会有以代码包为基本组织形式的源码文件. 这里的源码文件又分为三种,即:命令源码文件.库源码文件和测试源码文件,它们都有着不同的 ...
- Git基操记录
小结 说多了都是泪,最近在整理Java的笔记,记笔记我比较喜欢使用markdown(当时使用Hexo的原因之一),毕竟作为刚入门槛一点点的程序小白,还没用上Idea(很多大佬都推荐这个),目前还在使用 ...
- <二>派生类的构造过程
派生类从继承可以继承来所有的成员(变量和方法) 除了构造函数和析构函数 派生类怎么初始化从基类继承来的成员变量的呢?通过调用基类的构造函数来初始化 派生类的构造函数和析构函数,负责初始化和清理派生类部 ...
- MySQL进阶实战5,为什么查询速度会慢
一.先了解一下MySQL查询的执行过程 MySQL在查询时,它是由很多子任务组成的,每个子任务都会消耗一定的时间,如果要想优化查询,实际上要优化其子任务,可以消除一些子任务.减少子任务的执行次数.让子 ...
- 函数调用时用const保护指针
当调用函数并且把指向变量的指针作为参数传入时,通常会假设函数将修改变量(否则,为什么函数需要指针呢?).例如,如果在程序中看到语句 f(&x); 大概是希望f改变x的值.但是,f仅需检查x的值 ...
- 【Hadoop面试】基础概念、HDFS、MapReduce、Yarn、实战
一.Hadoop概念及架构 1.是否看过Hadoop源码 2.正常工作的hadoop集群中hadoop都分别需要启动哪些进程,他们的作用分别是什么 3.hadoop和spark中的文件缓存方式 4.h ...
- MySQL的select for update用法
MySQL中的select for update大家应该都有所接触,但什么时候该去使用,以及有哪些需要注意的地方会有很多不清楚的地方,我把我如何使用和查询到的文档在此记录. 作用 select本身是一 ...
- Java单例模式的最佳实践?
"读过书,--我便考你一考.茴香豆的茴字,怎样写的?"--鲁迅<孔乙己> 0x00 大纲 目录 0x00 大纲 0x01 前言 0x02 单例的正确性 new关键字 c ...
- <七>lambda表达式实现原理
C++11 函数对象的升级版=>lambda表达式 函数对象的缺点: 使用在泛型算法,参数传递, 比较性质/自定义操作 优先级队列, 需要专门定义出一个类 //lambda表达式语法: //[捕 ...
- LeetCode HOT 100:子集(简单易懂的回溯)
题目:78. 子集 题目描述: 给你一个整数数组,数组中元素互不相同.返回数组中所有可能的子集,且子集不能重复! 什么是子集?举个例子:原数组[1, 2, 3],[].[1].[1, 2].[1, 3 ...