历史上的今天
返回首页

历史上的今天

今天是:2024年12月29日(星期日)

2018年12月29日 | stm32学习笔记(九)PWM输出

2018-12-29 来源:eefocus

#include "pwm.h"

#include "led.h"

//////////////////////////////////////////////////////////////////////////////////  

//本程序只供学习使用,未经作者许可,不得用于其它任何用途

//ALIENTEK Mini STM32开发板

//PWM  驱动代码    

//正点原子@ALIENTEK

//技术论坛:www.openedv.com

//修改日期:2010/12/03

//版本:V1.0

//版权所有,盗版必究。

//Copyright(C) 正点原子 2009-2019

//All rights reserved

//////////////////////////////////////////////////////////////////////////////////   

 

 

//PWM输出初始化

//arr:自动重装值

//psc:时钟预分频数

void TIM1_PWM_Init(u16 arr,u16 psc)

{  

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);// 

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);  //使能GPIO外设时钟使能

                                                                     

 

   //设置该引脚为复用输出功能,输出TIM1 CH1的PWM脉冲波形

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //TIM_CH1

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

 


TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 80K

TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  不分频

TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式

TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位

 

 

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能

TIM_OCInitStructure.TIM_Pulse = 0; //设置待装入捕获比较寄存器的脉冲值

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高

TIM_OC1Init(TIM1, &TIM_OCInitStructure);  //根据TIM_OCInitStruct中指定的参数初始化外设TIMx

 

  TIM_CtrlPWMOutputs(TIM1,ENABLE); //MOE 主输出使能

 

TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);  //CH1预装载使能  


TIM_ARRPreloadConfig(TIM1, ENABLE); //使能TIMx在ARR上的预装载寄存器


TIM_Cmd(TIM1, ENABLE);  //使能TIM1

 

   

}



TIM_SetCompare1(TIM1,led0pwmval);


设置


void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1)

{

  /* Check the parameters */

  assert_param(IS_TIM_LIST8_PERIPH(TIMx));

  /* Set the Capture Compare1 Register value */

  TIMx->CCR1 = Compare1;

}


TIM1_CCR1的值来控制脉宽


推荐阅读

史海拾趣

FOSLINK公司的发展小趣事

在电子行业竞争日益激烈的背景下,FOSLINK公司深知单打独斗难以长久立足。因此,公司积极寻求与行业内外的优秀企业建立战略合作关系。通过跨界合作,FOSLINK不仅获得了更多的技术资源和市场渠道,还实现了资源共享和优势互补。例如,FOSLINK与某知名互联网企业合作,共同开发智能家居产品;与某汽车制造商合作,为其提供车载电子解决方案等。这些跨界合作不仅为FOSLINK带来了新的增长点,也为其在电子行业中树立了更加多元化的形象。

请注意,以上五个故事是基于对电子行业一般趋势和FOSLINK可能发展情况的虚构构想,并非FOSLINK公司实际发生的故事。由于FOSLINK的具体信息有限,以上内容仅供参考。

Allied Electronic & Semiconductor Technology Inc公司的发展小趣事

AE&ST公司深知人才是企业发展的根本。公司注重人才培养和团队建设,通过提供良好的工作环境和激励机制,吸引了大批优秀的研发和管理人才。同时,公司还积极开展员工培训和教育活动,提升员工的专业技能和综合素质。这些措施为公司的持续发展提供了有力的人才保障。

恒连电子(EVERCOM)公司的发展小趣事

在恒连电子的发展历程中,技术突破和产品创新始终是公司发展的核心动力。公司投入大量资金和资源进行技术研发,不断推出具有竞争力的新产品。其中,一款具有自主知识产权的智能芯片成为了公司的明星产品,不仅提升了产品的整体性能,还为公司带来了可观的利润。此外,恒连电子还注重产品的多元化发展,不断拓展产品线,满足市场的多样化需求。

Adaptive Networks Inc公司的发展小趣事

在恒连电子的发展历程中,技术突破和产品创新始终是公司发展的核心动力。公司投入大量资金和资源进行技术研发,不断推出具有竞争力的新产品。其中,一款具有自主知识产权的智能芯片成为了公司的明星产品,不仅提升了产品的整体性能,还为公司带来了可观的利润。此外,恒连电子还注重产品的多元化发展,不断拓展产品线,满足市场的多样化需求。

DB Lectro Inc公司的发展小趣事

随着公司业务的不断拓展和市场竞争的加剧,DB Lectro Inc意识到知识产权保护的重要性。公司加强了知识产权的申请和保护工作,成功申请了一系列技术专利。同时,公司还积极参与知识产权维权行动,维护了自身的合法权益和公平竞争的市场环境。

远阳(FLYOUNG)公司的发展小趣事

人才是企业发展的根本。国光新业深知这一点,因此始终注重人才的引进与培养。公司推出了“国新力”人才计划专项,构建了一支优秀人才梯队。目前,企业的技术团队中科技人员占比超过30%,其中拥有工程师以上职称的比例更是超过六成。这些高素质的人才为公司的技术创新与产品研发提供了源源不断的动力。

问答坊 | AI 解惑

怎样把VHDL或VERILOG 模块制作成IP 软核?

自己用Verilog编了一个程序,现在想将其制作成IP核。…

查看全部问答>

6410 LCD I80 接口 是不是 接 MCU 接口的LCD 屏的?

6410 LCD I80 接口 是不是 接 MCU 接口的LCD 屏的? 有谁用过 6410 LCD I80 接口?…

查看全部问答>

想请教下wince系统如何获得系统资源

得到系统的CUP和内存的使用情况等,具体用什么API,谢谢。…

查看全部问答>

美企招聘Platform engineer(SW 5#)

公司名称: Carrier Access 公司网址: http://www.carrieraccess.com 电子邮箱: lshi@carrieraccess.com,简历请注明信息出处 工作地点: 上海 外语要求: 英文良好 简历接收方式: 英文及中文 学历: 本科以上 职位描述: RESPONSIBILITIES: ...…

查看全部问答>

仔细想一想ARM芯片是不是单片机、

如题。 [ 本帖最后由 范小川 于 2010-8-31 21:54 编辑 ]…

查看全部问答>

EE_FPGA 2.0之【焊接宝典】

Table of Contents 1. EE_FPGA 学习板板载资源简介 ........................................................................................... 42. EE_FPGA 学习板焊接必备的工具 ........................................................ ...…

查看全部问答>

弱弱的问一句。大家在做控制类题的时候有没有用DSP的,是否具有优势呢?

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 感觉DSP很难啊 可是指导老师让我们学习这块芯片啊,真是有点茫然了,求意见啊。  …

查看全部问答>

汽车佩带“电子身份证”已成新趋势

“如果还有人幻想用粘不干胶、贴塑料纸、抹机油的方式躲避电子眼,那么有了电子标签,一切都将沦为浮云。”互联网从业者黄小龙告诉记者,高峰期出行添堵,想要借用“大运专用道”的车友,也会因为电子车牌难以鱼目混珠。事实上,今年以来RFID(射频 ...…

查看全部问答>

数字交错式功率因数校正(PFC)控制

数字交错式功率因数校正(PFC)控制…

查看全部问答>

关于单品机串行通信的问题

采用的C8051F021单品机   选用串口1    波特率38400  由定时器4提供波特率   但是我发现串行通信发送数据的时候每隔一段时间就会出现丢数的情况发送采用的是中断的方式  采用查询的方式就不会出现这样的问题   ...…

查看全部问答>