历史上的今天

今天是:2024年10月09日(星期三)

正在发生

2019年10月09日 | stm32 time4 pwm

发布者:BlissfulHiker 来源: eefocus关键字:stm32  time4  pwm 手机看文章 扫描二维码
随时随地手机看文章

pwm.h

#ifndef _PWM_H
#define _PWM_H
#include "sys.h"


void TIM14_PWM_Init(u32 arr,u32 psc);
#endif



pwm.c

#include "pwm.h"


//TIM4 PWM部份初始化
//PWM 输出初始化arr:自动重装值 psc:时钟预分频系数


void TIM14_PWM_Init(u32 arr,u32 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);//time14时钟使能
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//TIME14在PF9上,使能gpioF


GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14);//GPF9复用为tim14


GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9; //GPIOF9
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF; //复用
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz; //高速
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; //推挽复用
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP; //上拉
GPIO_Init(GPIOF,&GPIO_InitStructure); //初始化GPIOF9

TIM_TimeBaseStructure.TIM_Prescaler=psc; //定时器分频
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
TIM_TimeBaseStructure.TIM_Period=arr; //自动重装载值
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //


TIM_TimeBaseInit(TIM14,&TIM_TimeBaseStructure); //初始化定时器14

//初始化tim14 channel1 PWM模式
//PWM 调制模式1只要 TIMx_CNT < TIMx_CCR1,通道 1 便为有效状态,否则为无效状态。
//可以理解为 if TIMx_CNT < TIMx_CCR1 输出否则不输出 计数cnt//ccr1为捕获/比较寄存器

TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//比较输出使能
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;//输出极性低,因为PF9连接的LED0低电平才会亮
TIM_OC1Init(TIM14,&TIM_OCInitStructure); //初始化外设TIM1_40C1


TIM_OC1PreloadConfig(TIM14,TIM_OCPreload_Enable);//使能预装载寄存器

TIM_ARRPreloadConfig(TIM14,ENABLE);//CT1寄存器的位7 ARPE=1,这样ARR寄存器的内容在更新事件UEV发生时
//传送到影子寄存器


TIM_Cmd(TIM14,ENABLE);//使能tim14



main.c

#include "sys.h"
#include "delay.h"


#include "pwm.h"


int main(void)

u16 led0pwmval=0;
u8 dir=1;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//系统优先级分组2
delay_init(168);//168 MHz

TIM14_PWM_Init(500-1,84-1);//

//定时器的频率为84Mhz,分频系数为84,84000000/84=1Mhz 0.000001秒 1us;
//自动重装载值为500,定时器的周期=0.000001*500=0.0005s=500us=0.5ms,所以频率为1000ms/0.5ms=2khz
//定时器的频率为2Khz已经固定了
//
while(1)
{
delay_ms(10);
if(dir)
led0pwmval++;
else
led0pwmval--;
if(led0pwmval>300)dir=0; //3秒 到达300后,方向为递减
if(led0pwmval == 0)dir=1; //到达0后,方向为递增
TIM_SetCompare1(TIM14,led0pwmval); //修改比较值,修改占空比 此处修改CCR1为捕获/比较寄存器的值

}
}


/*
TIM_SetCompare1(TIM14,led0pwmval)每10ms设置了CCR1寄存器的值,
计算寄存器CNT的值为0~500这个不变(上面初始化时设了)  比较寄存器CCR1的值在变
通过前面设置只要CNT在2khz也就是0.5ms内,如果CCR1为100,那么0.1ms的时间灯是亮的,如果CCR1=300,那么0.3ms灯是亮的
又led0pwmval从0-300然后双从300到0,所以灯的亮度也是从低到高然后再从高到低

*/


关键字:stm32  time4  pwm 引用地址:stm32 time4 pwm

上一篇:stm32 定时器5输入捕获
下一篇:STM32 KEIL MDK 本地时间和Unix timestamp相互转换

推荐阅读

   数日前,思源电气收到集岑合伙的执行事务合伙人上海双创投资管理有限公司的函告,集岑合伙与上海武岳峰集成电路股权投资合伙企业(有限合伙)等签署了《上海承裕资产管理合伙企业(有限合伙)投资框架协议》,计划收购持有北京矽成41.65%股权的上海承裕资产管理合伙企业(有限合伙)(以下简称“承裕合伙”)全部份额。这意味着自武岳峰入股思源电气...
10月9日消息 据证券时报e公司报道,从三大运营商5G预约通道获悉,截至10月9日9:30分左右,中国移动、中国联通、中国电信的5G预约用户数分别达到592.26万户、200.33万户、207.84万户,合计超过1000万户。从8月开始,三大运营商开始提供两个月的5G“用户免费体验方案”。作为国内最早开启5G商用预约活动的一家基础运营商,中国移动从9月20日便允许用户...
  MSP430的不同型号,其串行通讯工作模式是一样的。以MSP430G2553为例进行说明。MSP430G2553是20个引脚的16位单片机。具有内置的16位定时器、16k的FLASH和512B的RAM,以及一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。此外还具有一个10位的模数(A/D)转换器。这里我们详细说明MSP430G2553串口通信。其引脚排布如图1.1所示。其功能表如...
北京时间10月8日下午消息,据报道,台积电今日发布了2021年9月份和第三季度的营收数据。第三季度,作为全球最大的芯片代工厂商,台积电营收创下历史新高,表明该公司正受益于全球芯片的持续短缺。  9月份,台积电营收为1527亿元新台币,同比增长20%。整个第三季度,台积电营收为4147亿元新台币(约合148亿美元),略高于分析师平均预期的4130亿元新台币...

史海拾趣

问答坊 | AI 解惑

学习嵌入式--选择考研深造还是进入企业技术部工作学习?

本人为在校大学生,想请问各位, 想学好嵌入式是考研深造还是进入企业技术部边工作边学习? 就当前的社会形势,那个各位实在? 请各位电子行业的前辈们指点迷津,分析分析当前高校关于嵌入式教学的情况 以及现在嵌入式行业的技术情形。 在此 ...…

查看全部问答∨

AT91初始化代码手册中文翻译版

介绍 由于多种原因基于ARM的AT91的大多数应用代码使用C语言编写。然而,启动顺序要求初始化ARM处理器和严重依赖于寄存器结构的关键设备和内存映射处理机,和存储器重映射操作。由于这个原因,C启动序列必须用汇编编写。 这个应用笔记描述了一个AT ...…

查看全部问答∨

复合绝缘子憎水性带电检测仪

       复合绝缘子憎水性带电检测仪 华北电力大学(北京) 国内唯一一家010-60120676 13601208165 okgod123@126.com 于老师    填补我国复合绝缘子憎水性在线检测领域空白的新型产品。结构简单,操作方便,判断 ...…

查看全部问答∨

工资帐面涨了,实际收入却少了

昨天发工资,工资条上税前工资涨了,结果实际收入却少了。妈的,一问HR,说以前公司避税了,现在公司是正规企业,全部要交税了。操!…

查看全部问答∨

离职在读工程硕士选专业方向的问题

  我帮我朋友问一个问题,希望大家能够帮帮忙谢谢:   以下是她的问题:   她本专业学的是计算机的偏软件,工作一年半,做的是硬件研发,画板子,写程序都有.现在离职在读工程硕士  最近要选方向  她 ...…

查看全部问答∨

MSP430F149单片机,串口通信

我使用USART1模块进行串口通讯,但调试的时候发现程序进不了中断。 相关代码: #include \"msp430x14x.h\" #define uchar unsigned char #define uint  unsigned int #define URXD1 BIT7 #define UTXD1 BIT6 uchar dataSedBuffer[100] ...…

查看全部问答∨

五折出几本WinCE相关书籍

由于本人转行,不再从事WinCE开发,这些书对我也无太大作用,近期还打算搬家,书籍携带不方便,决定将这些书籍转让给需要的人,让其能发挥应有的作用。 本人爱护书籍,看书时也没有笔画的习惯,除了一本买的早翻的多,比较旧,其他都很新。 《Win ...…

查看全部问答∨

无条件恒流”转变为“有条件恒流”的新型LED智能恒流驱动器

replyreload += \',\' + 765665;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答∨

求助:快速检测GPIO输入脚的电平

大家好!我用STM32作摄像头驱动,直接将摄像头数据现在到FSMC接口的LCD上,已经可以工作了,但3百万像素一帧需要2~3秒,想提高速率,问一下除了我下面的方法外,还有没有更快的方法检测输入管脚电平变化?  1009: {   ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved