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
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
又led0pwmval从0-300然后双从300到0,所以灯的亮度也是从低到高然后再从高到低
*/
上一篇:stm32 定时器5输入捕获
下一篇:STM32 KEIL MDK 本地时间和Unix timestamp相互转换
推荐阅读
史海拾趣
由于我无法获取Connective Peripherals Pte Ltd公司的实时发展动态或具体事件,我无法为您撰写5个与该公司电子行业里发展相关的故事。然而,我可以为您概括性地描述Connective Peripherals Pte Ltd公司在电子行业中的发展概况,以便您了解该公司的基本情况和行业地位。
Connective Peripherals Pte Ltd自2016年成立以来,在电子行业里逐步崭露头角,成为一家备受瞩目的通信和仪器仪表产品供应商。该公司专注于基于USB、CAN和RS232/RS422/RS485接口的串行连接解决方案,凭借卓越的技术实力和创新能力,在行业中树立了良好的口碑。
随着科技的飞速发展,电子行业对高效、稳定的通信和仪器仪表产品需求日益增长。Connective Peripherals Pte Ltd紧跟行业趋势,不断推出创新产品,满足市场需求。从提供USB到串行接口连接的适配器板和电缆,到开发基于USB的示波器、数据记录器和逻辑分析仪等高端产品,Connective Peripherals Pte Ltd的产品线日益丰富,质量也逐步提升。
在市场竞争激烈的电子行业,Connective Peripherals Pte Ltd凭借其卓越的产品质量和完善的售后服务,赢得了众多客户的信赖和支持。该公司与多家知名企业建立了长期稳定的合作关系,产品远销海内外,为公司的快速发展奠定了坚实的基础。
此外,Connective Peripherals Pte Ltd还注重技术研发和人才培养。公司拥有一支高素质的研发团队,不断投入资金进行技术研发和创新,为公司的持续发展提供了强大的技术支持。同时,公司还积极开展人才培训和引进工作,吸引了一批优秀的行业人才加入公司,为公司的长远发展注入了新的活力。
总之,Connective Peripherals Pte Ltd在电子行业里凭借卓越的技术实力、丰富的产品线和完善的售后服务,逐步发展成为一家具有影响力的企业。未来,随着电子行业的不断发展,Connective Peripherals Pte Ltd有望继续保持其领先地位,为行业的进步和发展做出更大的贡献。
请注意,以上内容仅为概括性的描述,并未涉及具体的故事或事件。如果需要更详细的故事或事件描述,建议查阅相关的行业报告、公司年报或新闻报道,以获取更准确和具体的信息。
在市场竞争日益激烈的电子行业中,喜美克斯公司始终坚持品质至上的原则。公司投入大量资源用于产品质量控制和生产工艺的改进,确保每一件产品都能达到最高的品质标准。这种对品质的执着追求,让喜美克斯的产品在市场上赢得了良好的口碑,也为公司赢得了众多忠实的客户。
胜利公司深知品牌文化对于提升品牌价值的重要性。因此,公司积极开展文化营销活动,如举办羽毛球文化节、赞助羽毛球赛事等。通过这些活动,公司不仅与消费者建立了深厚的情感联系,还提升了品牌的知名度和美誉度。
以上故事均基于虚构,旨在展示一个品牌成长的可能路径和方式。如有需要,请结合实际情况进行调整和修改。
Daewoo公司最初由金宇中于1967年创建,起始于一个规模不大的纺织厂。然而,金宇中并不满足于纺织业的局限,他敏锐地察觉到了韩国经济快速发展的机遇。于是,Daewoo公司逐渐扩展业务领域,70年代侧重发展化学工业,80年代后更是进军汽车、电子和重工业领域,并积极参与国外资源的开发。这种前瞻性的战略布局,为Daewoo公司的快速发展奠定了基础。
为了进一步提升市场竞争力,统明亮公司在2016年推出了一款新型直角DomiLED产品。这款LED产品具有高光照强度、低热阻等特点,广泛应用于测光照明领域。新型直角DomiLED的推出,不仅丰富了统明亮的产品线,也进一步巩固了其在LED市场的领先地位。这款产品的成功推出,也充分展示了统明亮公司在LED技术创新方面的实力。
面对不断变化的市场环境和客户需求,Euroquartz始终保持敏锐的洞察力和快速的反应能力。公司不断投入研发力量,推动产品创新和技术升级。同时,Euroquartz也注重与客户的沟通和合作,深入了解市场需求,为客户提供更加专业和贴心的服务。这种持续发展的动力,使Euroquartz在电子行业始终保持领先地位,并为公司的未来发展奠定了坚实的基础。
请注意,由于篇幅限制,以上每个故事都是基于Euroquartz公司的重要事件和事实进行概括和简化的。如果需要更详细的信息或更深入的分析,建议查阅相关报道或公司官方资料。
本人为在校大学生,想请问各位, 想学好嵌入式是考研深造还是进入企业技术部边工作边学习? 就当前的社会形势,那个各位实在? 请各位电子行业的前辈们指点迷津,分析分析当前高校关于嵌入式教学的情况 以及现在嵌入式行业的技术情形。 在此 ...… 查看全部问答∨ |
介绍 由于多种原因基于ARM的AT91的大多数应用代码使用C语言编写。然而,启动顺序要求初始化ARM处理器和严重依赖于寄存器结构的关键设备和内存映射处理机,和存储器重映射操作。由于这个原因,C启动序列必须用汇编编写。 这个应用笔记描述了一个AT ...… 查看全部问答∨ |
复合绝缘子憎水性带电检测仪 华北电力大学(北京) 国内唯一一家010-60120676 13601208165 okgod123@126.com 于老师 填补我国复合绝缘子憎水性在线检测领域空白的新型产品。结构简单,操作方便,判断 ...… 查看全部问答∨ |
|
我帮我朋友问一个问题,希望大家能够帮帮忙谢谢: 以下是她的问题: 她本专业学的是计算机的偏软件,工作一年半,做的是硬件研发,画板子,写程序都有.现在离职在读工程硕士 最近要选方向 她 ...… 查看全部问答∨ |
我使用USART1模块进行串口通讯,但调试的时候发现程序进不了中断。 相关代码: #include \"msp430x14x.h\" #define uchar unsigned char #define uint unsigned int #define URXD1 BIT7 #define UTXD1 BIT6 uchar dataSedBuffer[100] ...… 查看全部问答∨ |
由于本人转行,不再从事WinCE开发,这些书对我也无太大作用,近期还打算搬家,书籍携带不方便,决定将这些书籍转让给需要的人,让其能发挥应有的作用。 本人爱护书籍,看书时也没有笔画的习惯,除了一本买的早翻的多,比较旧,其他都很新。 《Win ...… 查看全部问答∨ |
|
大家好!我用STM32作摄像头驱动,直接将摄像头数据现在到FSMC接口的LCD上,已经可以工作了,但3百万像素一帧需要2~3秒,想提高速率,问一下除了我下面的方法外,还有没有更快的方法检测输入管脚电平变化? 1009: {   ...… 查看全部问答∨ |