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位自动装载计数器构成. 通用定时器的很多 ...
随机推荐
- CPU体系(1):内存模型 & CPU Cache一致性 (待整理)
C++中的 volatile, atomic, memory barrier 应用场景对比 -- volatile memory barrier atomic 抑制编译器重排 Yes Yes Yes ...
- 【Java并发入门】03 互斥锁(上):解决原子性问题
原子性问题的源头是线程切换 Q:如果禁用 CPU 线程切换是不是就解决这个问题了? A:单核 CPU 可行,但到了多核 CPU 的时候,有可能是不同的核在处理同一个变量,即便不切换线程,也有问题. 所 ...
- 【Shell案例】【打印指定行用sed、for循环、head和tail配合使用】4、输出第5行的内容
描述写一个 bash脚本以输出一个文本文件 nowcoder.txt 中第5行的内容. 示例:假设 nowcoder.txt 内容如下:welcometonowcoderthisisshellcode ...
- docker入门(利用docker部署web应用)
第一章 什么是docker1.1 docker的发展史2010年几个年轻人成立了一个做PAAS平台的公司dotCloud.起初公司发展的不错,不但拿到过一些融资,还获得了美国著名孵化器YCombina ...
- K8s 超详细总结
一个目标:容器操作:两地三中心:四层服务发现:五种Pod共享资源:六个CNI常用插件:七层负载均衡:八种隔离维度:九个网络模型原则:十类IP地址:百级产品线:千级物理机:万级容器:相如无亿,K8s有亿 ...
- 可视化编排的数据集成和分发开源框架Nifi轻松入门-上
@ 目录 概述 定义 dataflow面临挑战 特性 核心概念 架构 高级概述 安装 部署 常见处理器 入门示例 概述 定义 Nifi 官网地址 https://nifi.apache.org/ Ni ...
- 网络爬虫之requests模块,自动办公领域之openpyx模块
一.第三方模块的下载与使用 第三方模块:别人写的模块,一般情况下功能都特别强大 我们如果想使用第三方模块,第一次必须先下载,后面才可以反复使用(等同于内置模块) 下载第三方模块的方式 1. pi ...
- Ajax---EventLoop事件循环
前言 JavaScript 是一门单线程执行的脚本语言.也就是说,同一时间只能做一件事情. JavaScript要运行在宿主环境中(浏览器,nodejs)下.浏览器内部有执行js代码的引擎 ...
- 2、postman调试
Postman接口调试: postman博客参考 Postman是一个API(接口)开发协作平台,其提供了发送请求.检查响应.自动化测试.数据模拟.服务监控.文档分享等一系列与API(接口)开发有关的 ...
- [python] 个人日常python工具代码
文章目录 生成文件目录结构 多图合并 找出文件夹中相似图像 生成文件目录结构 生成文件夹或文件的目录结构,并保存结果.可选是否滤除目录,特定文件以及可以设定最大查找文件结构深度.效果如下: root: ...