历史上的今天
返回首页

历史上的今天

今天是:2025年06月28日(星期六)

2018年06月28日 | STM32F407 TIM1的PWM输出

2018-06-28 来源:eefocus

//TIM1 PWM部分初始化 

//PWM输出初始化

//arr:自动重装值

//psc:时钟预分频数

void TIM1_PWM_Init(u32 arr,u32 psc)

{  

//此部分需手动修改IO口设置

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);   //TIM1时钟使能    

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //使能PORTA时钟

//复用不能写成下面,会出问题

//GPIO_PinAFConfig(GPIOA,GPIO_PinSource8|GPIO_PinSource11,GPIO_AF_TIM1); //GPIO复用为定时器1

GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_TIM1); //复用GPIOA_Pin8为TIM1_Ch1, 

GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_TIM1);//复用GPIOA_Pin11为TIM1_Ch4,注意没有CH4N 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_11;           //GPIO

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //速度100MHz

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉

GPIO_Init(GPIOA,&GPIO_InitStructure);              //初始化P

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_TimeBaseStructure.TIM_RepetitionCounter = 0x0;//默认就为0

TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);//初始化定时器1

 

 

 

//初始化TIM1  PWM模式  

//PWM 模式 1–– 在递增计数模式下,只要 TIMx_CNT

 

 

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //PWM1为正常占空比模式,PWM2为反极性模式

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

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //输出极性:TIM输出比较极性低,有效电平为低电平

 

TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;//在空闲时输出     低,这里的设置可以改变TIM_OCPolarity 如果没这句,第1通道有问题

TIM_OCInitStructure.TIM_Pulse = 2000; //输入通道1 CCR1(占空比数值)

TIM_OC1Init(TIM1, &TIM_OCInitStructure); //Ch1初始化

TIM_OCInitStructure.TIM_Pulse = 5000;

TIM_OC4Init(TIM1, &TIM_OCInitStructure);//通道4

TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM1在CCR1上的预装载寄存器,CCR自动装载默认也是打开的

TIM_ARRPreloadConfig(TIM1,ENABLE);//ARPE使能 

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

TIM_CtrlPWMOutputs(TIM1, ENABLE);//使能TIM1的PWM输出,TIM1与TIM8有效,如果没有这行会问题

 

}  


推荐阅读

史海拾趣

南京绿芯(Grenergy)公司的发展小趣事

对于电子消毒柜电路,网友可能的问题涉及多个方面,包括故障排查、日常维护、使用注意事项等。以下是一些可能的问题及详细回答:

一、故障排查类问题

1. 消毒柜通电后跳闸怎么办?

回答
消毒柜通电后跳闸可能是由电路短路引起的。首先,检查电源插座的火线(L)、零线(N)、地线(E)是否接线正确。其次,按照消毒柜上的线路图检查柜内线路接线是否正确,以及线路绝缘层是否被破坏(如被螺丝钻破、被金属边角划破等)。如果以上检查均正常,可能是电源板或继电器等部件损坏,建议联系专业维修人员进行检查和更换。

2. 消毒柜插上电源后无法启动,指示灯不亮怎么办?

回答
消毒柜无法启动且指示灯不亮,可能是由以下原因造成:电源插座无电或接触不良、熔断器烧坏、电源线与机体接触不良或断路、变压器烧坏或断路、电路板烧坏、继电器失灵等。解决方法包括检查电源插座、更换熔断器、检查并修复线路、更换电路板或继电器等。如果问题依然存在,建议联系专业维修人员进行检查。

二、日常维护类问题

1. 消毒柜需要定期清洁哪些部位?

回答
消毒柜需要定期清洁的部位包括柜体内部、层架、门封条以及散热孔等。清洁时,应使用柔软的布或海绵,避免使用腐蚀性强的清洁剂。同时,要注意不要将水溅入电路板等电子元件区域,以免造成短路或损坏。

2. 消毒柜的电源线应该如何保养?

回答
消毒柜的电源线应定期检查是否老化或破损,如有发现应及时更换。在使用过程中,应避免电源线过度弯折或受到重物压迫,以免影响其使用寿命和安全性。此外,电源线应远离高温、潮湿和腐蚀性强的环境,以确保其绝缘性能不受影响。

三、使用注意事项类问题

1. 消毒柜在使用时需要注意哪些安全问题?

回答
消毒柜在使用时需要注意以下安全问题:

  • 确保电源插座接地良好,避免漏电危险。
  • 不要将易燃易爆物品放入消毒柜内,以免发生火灾或爆炸。
  • 在使用过程中,应避免频繁开关柜门,以免影响消毒效果和能耗。
  • 使用完毕后,应及时关闭电源并拔掉插头,以节约能源和延长设备使用寿命。

2. 消毒柜是否可以一直插电使用?

回答
消毒柜是否可以一直插电使用取决于用户的使用情况和需求。如果用户经常使用消毒柜且没有其他特殊需求,可以保持电源连接;如果用户不经常使用消毒柜或者有其他特殊需求(如节约能源、避免设备老化等),建议在使用前提前通电,并在非使用状态下拔掉电源。此外,为了确保安全,插座应具备防水、防漏电等功能。

综上所述,对于电子消毒柜电路的问题,网友可能关注故障排查、日常维护和使用注意事项等方面。通过了解这些问题的解决方法和注意事项,可以更好地使用和维护消毒柜,确保其正常运行和延长使用寿命。

Digitron公司的发展小趣事

为了进一步扩大市场份额,Digitron公司积极寻求与行业内外的企业建立战略合作关系。XXXX年,Digitron公司与一家全球知名的物流公司达成合作协议,为其提供定制化的温度监控解决方案。这一合作不仅为Digitron公司带来了可观的收入,还提高了其在物流行业的知名度。此外,Digitron公司还积极参加国际展会和论坛,与全球客户建立联系,拓展国际市场。

弘凯光电(BRIGHTEK)公司的发展小趣事

随着技术的不断进步和市场的逐步打开,弘凯光电开始将业务拓展至全球范围。公司的客户群迅速扩大,遍布60多个国家和地区,同时在欧洲、北美、南美、东南亚和中东地区均设立了经销网点。此外,弘凯光电还积极寻求国际认证,以证明其产品的品质和可靠性。通过取得ISO9001质量保证体系、ISO14001国际环境管理体系认证等一系列认证,公司进一步提升了品牌形象和市场竞争力。

CAROLCABLE公司的发展小趣事

CAROLCABLE公司的创立,标志着电子线缆行业迎来了一位新的竞争者。在电子科技飞速发展的时代背景下,创始人凭借对线缆技术的深刻理解和市场需求的敏锐洞察,决定创立CAROLCABLE公司。公司初期,面临着资金短缺、技术瓶颈和市场认知度低等多重挑战。然而,创始人凭借着坚定的信念和不懈的努力,带领团队克服了一个又一个困难。他们积极研发新产品,优化生产工艺,提高产品质量,逐渐在市场上站稳了脚跟。

随着公司业务的不断拓展,CAROLCABLE开始与一些知名的电子企业建立合作关系,为其提供高质量的线缆产品。这些合作不仅为公司带来了稳定的订单和收入,也进一步提升了CAROLCABLE在行业内的知名度和影响力。

和芯润德(CoreChips)公司的发展小趣事

和芯润德深知产品质量对于企业发展的重要性。因此,公司建立了严格的质量管理体系,从原材料采购到生产过程的每一个环节都进行严格把关。此外,公司还引进了先进的检测设备和技术手段,确保产品的可靠性和稳定性。这种对质量的严格把控使和芯润德的产品在市场上赢得了良好的口碑。

Advantech公司的发展小趣事

随着技术的不断进步,和芯润德并未满足于现状。公司持续加大研发投入,积极探索新的技术领域。通过与世界领先的EDA工具提供商合作,和芯润德建立了完整的集成电路设计链,并成功研发出多款高性能、低功耗的集成电路芯片产品。这些产品在市场上获得了广泛好评,使和芯润德成为了技术创新的引领者。

问答坊 | AI 解惑

matlab第四课-多项式乘法

两个主要是有conv指令完成的啦!…

查看全部问答>

Cortex-M3(版本2)比前代有哪些改进和提高?改进

http://infocenter.arm.com/help/t ... tex_m3_r2p0_trm.pdf 1.7.3. Differences in functionality between r1p1 and r2p0 In summary, the differences in functionality include: 1, Implementation time options have been added to select b ...…

查看全部问答>

三星S3C2440参考设计!

三星S3C2440参考设计!…

查看全部问答>

如何将读取数据改为异步读取

我用HIDLIB库做了个读取USB HID设备的VC6程序. 同步读取数据好像经常死机.         unsigned long lpNumberOfBytesRead=0;         unsigned char buffer[Receive_no], display[Receive_no*3+1]; &nbs ...…

查看全部问答>

Microsoft.WINDOWS.SERVER.V2003.IFD.DDK-ISO 如何安装?

Microsoft.WINDOWS.SERVER.V2003.IFD.DDK-ISO如何安装?…

查看全部问答>

怎么把PPC下面的程序移植到CE4.2上?

现在有一个程序是基于ppc2002,wince3.0,但是由于我没有装PPC的SDK所以导致我在EVC下无法编译,现在准备把程序移植到WINCE4.2上去,不牵涉到PPC了,请问需要做哪些工作才能让程序运行起来啊?…

查看全部问答>

VHDL求模运算

最近在写一个VHDL的年历+时钟程序,发现mod运算不能识别, if (year mod 400=0) or ((year mod 4=0) and (year mod 100 /=0)) then                         leap…

查看全部问答>

求PCI主模式下源代码

我只有在lattice下载的从模式源代码,现在想做主模式的。请有这方面资料的人给点帮助吧…

查看全部问答>

刚开始接触AVR,求教大虾AVR单片机的学习心得

刚开始接触AVR,求教大虾AVR单片机的学习心得…

查看全部问答>

G2553串口接收中断

我在用g2553写串口接收程序时,将串口接收的那个寄存器赋值给变量,之后就不进中断了,数据时用上位机一直发的,只能进一次是什么原因啊?用f149的时候不这样啊?忘大神指点!谢谢…

查看全部问答>