历史上的今天
返回首页

历史上的今天

今天是:2025年01月29日(星期三)

2019年01月29日 | STM32产生38KHz红外载波代码

2019-01-29 来源:eefocus

本项目用TIM2通道1产生38KHz频率;对应的MCU管脚是PA0,默认复用功能;

在这里插入图片描述

重点是怎样配置TIM2的参数,产生38KHz频率;


//应用示例:TIM2_PWM_Init(99,18);

void TIM2_PWM_Init(u16 arr,u16 psc)

{

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //使能定时器2时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);  //使能GPIO外设和AFIO复用功能模块时钟,必须先开启辅助功能时钟

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

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; 

// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出  

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

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

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

//初始化TIM2

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

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

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

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

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

//初始化TIM2 Channel1 PWM模式  

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2 ??? 配置为PWM模式1

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

//新增

TIM_OCInitStructure.TIM_Pulse = 75;    //设置跳变值,当计数器计数到这个值时,电平发生跳变//86(84~90) //91(90~92)   //60(5~86) //60(10~86)

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高 当定时器计数值小于pulse时为高电平

TIM_OC1Init(TIM2, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM2 OC1 使能通道1

TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);  //使能TIM2在CCR2上的预装载寄存器

 

//  TIM_OC2Init(TIM4, &TIM_OCInitStructure); //使能通道2

//  TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);

//

//  TIM_OC3Init(TIM4, &TIM_OCInitStructure); //使能通道3

//  TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);

//  

//  TIM_OC4Init(TIM4, &TIM_OCInitStructure); //使能通道3

//  TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);

 

TIM_ARRPreloadConfig(TIM2, ENABLE); // 使能TIM2重载寄存器ARR ???

  

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

}



int main(void)

{

......

TIM2_PWM_Init(99,18);//在PA0产生38KHz波特率

//在主函数里面根据需要加上设置占空比,也可以不加上;

TIM_SetCompare1(TIM2,50);  

.......

}



用示波器检测,一端接地,另外一端接T_38K的引脚;

在这里插入图片描述

示波器检测图示:

在这里插入图片描述

推荐阅读

史海拾趣

AnDAPT__Inc.公司的发展小趣事

AnDAPT Inc.是一家专注于可编程电源管理解决方案的创新型公司。以下是关于该公司发展的相关故事:

  1. 公司成立与初期阶段:AnDAPT Inc.成立于2014年,总部位于美国加利福尼亚州圣何塞。公司的创始人之一是Raghunandan "Raghu" Anandan,他在可编程电源管理领域拥有丰富的经验和专业知识。公司成立之初,致力于开发一种新型的可编程电源管理解决方案,以满足日益复杂和多样化的电子设备对电源管理的需求。

  2. 技术创新与产品开发:AnDAPT Inc.在其成立初期即开始着手开发基于可编程电源管理技术的解决方案。公司团队结合了数字信号处理(DSP)和模拟电路设计等领域的专业知识,不断推动技术创新和产品开发。他们的主要产品是基于可编程电源管理器件的芯片,能够根据应用需求动态调整电源管理参数,提供高效、灵活和智能的电源解决方案。

  3. 市场拓展与合作伙伴关系:随着公司技术的不断成熟和产品的不断推出,AnDAPT Inc.开始加大对市场的拓展力度。公司与电子设备制造商、系统集成商以及电源管理解决方案提供商建立了紧密的合作关系,共同推动可编程电源管理技术的应用和推广。通过与行业领先的合作伙伴进行合作,AnDAPT Inc.不断拓展产品的应用领域和市场份额。

  4. 技术认证与市场认可:AnDAPT Inc.的产品经过严格的技术认证和市场测试,在业界获得了良好的口碑和市场认可。公司的可编程电源管理解决方案被广泛应用于各种电子设备,包括消费类电子产品、工业自动化设备、汽车电子系统等。其技术创新和产品性能得到了行业专家和客户的一致好评。

  5. 持续发展与未来展望:作为一家专注于可编程电源管理技术的创新型公司,AnDAPT Inc.将继续致力于技术创新和产品开发。公司将不断推出新的产品和解决方案,满足客户不断变化的需求,并积极参与行业标准的制定和技术进步的推动。在未来,AnDAPT Inc.将继续保持敏锐的市场洞察力和技术领先地位,助力客户实现产品创新和市场竞争优势。

Custom LeatherCraft Manufacturing Co Inc公司的发展小趣事

CLC起源于一个对高质量手工皮革制品有着无限热情的小型工坊。创始人是一位经验丰富的皮革工匠,他看到了电子工程师和户外工作者对耐用、实用的工具包的需求。于是,他开始了自己的创业之路,以“定制皮革工艺”为核心理念,承诺每一件产品都经过精心制作和严格质检。凭借这份承诺和精湛的技艺,CLC逐渐在市场中赢得了口碑。

Facon公司的发展小趣事

在2010年代初,随着科技的飞速发展,电子行业正迎来新一轮的创新浪潮。这时,一群充满激情和梦想的工程师在硅谷创立了Facon公司,他们怀揣着改变世界的愿景,立志在电子行业中留下自己的印记。初始阶段,Facon主要专注于研发高性能的半导体芯片,为智能手机、平板电脑等电子产品提供强大的计算能力。通过不懈努力和持续创新,Facon逐渐在市场中树立了良好的口碑。

宁波晨翔电子(CONNFLY)公司的发展小趣事

宁波晨翔电子有限公司(CONNFLY)成立于1998年(前身宁波正青电子有限公司),初创时期主要致力于连接器及线材产品的研发与生产。在创始团队的共同努力下,公司逐渐在电子连接器市场找到了自己的定位,通过不断的技术创新和品质提升,逐渐获得了市场的认可。

登丰微(GSTEK)公司的发展小趣事

歌普电子始终将产品质量视为企业的生命线。公司采用精细化管理模式,并严格执行ISO9001质量管理体系,确保每一件产品都达到高标准。同时,歌普的产品还通过了UL、CSA、TUV等国际安全认证及RoHS2.0、REACH欧盟绿色环保检测,进一步证明了其产品的可靠性和环保性。这些努力使得歌普在市场上获得了广泛的认可,与众多知名企业建立了长期稳定的合作关系。

Diconex公司的发展小趣事

随着环保意识的不断提高,电子行业的环保要求也越来越高。Diconex公司积极响应环保号召,将环保理念融入生产全过程。公司采用环保材料和工艺进行生产,降低生产过程中的污染排放。同时,公司还建立了完善的废弃物处理机制,确保废弃物得到合理处理和资源化利用。这种环保理念的实施不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

问答坊 | AI 解惑

我也发发我做的8*8的64个按键的PCB&SCH

本帖最后由 paulhyde 于 2014-9-15 09:21 编辑 大家期待啦! 发发我做的8*8的64个按键的PCB&SCH 1枚小小金币,也算是我的辛苦钱啊! 只要大家回复帖就有金币的  …

查看全部问答>

频率计

本帖最后由 paulhyde 于 2014-9-15 02:59 编辑 同道多交流!!    …

查看全部问答>

一个步进机控制程序 帮忙解释一下

CDOE         SEGMENT                               ;BJ.ASM ASSUME      CS:CODE ...…

查看全部问答>

请大家帮帮出个注意。 国内企业视频监控vS 外企交换机研发

麻烦大家出个注意,现在有两个OFFER,不知道那个行业以后更有发展,没想到找工作难,现在有了反而更难决定了。希望大家能帮出点意见,在此谢谢了啊…

查看全部问答>

软盘扇区的面积和存储容量的关系是什么

软盘不同磁道的扇区面积应该不一样大(比方说0磁道1扇区的面积和1磁道1扇区的面积应该不一样大),但为什么软盘每个扇区的存储容量都是512B呢,不一样大的扇区难道存储容量完全相同吗?…

查看全部问答>

WINCE 下将CString转换成char*出现的问题

我在wince下将CString字符串转换成char*,试了网上的好多方法都不成功,下面是我编译通过的,但是结果不对啊!       CEdit *pEdit1 = (CEdit*)GetDlgItem(IDC_EDIT1);      CEdit *pEdit2 = (CEdit*)G ...…

查看全部问答>

新制CC2530板烧写程序失败问题

请问各位大侠,最近在做CC2530的板子,但新制的板子一直程序烧写不进去,用SmartRF Flash Programmer检测不到芯片,一开始怀疑是否2530芯片是否没焊好,但对每只脚进行检测后均是与焊盘连接上,实在是相当苦闷,是不是新弄的2530芯片要一开始设置什 ...…

查看全部问答>

不解啊

在学习msp430f149中,我用买的开发板上的程序生成的txt文件下载到学习板中就能实现,我自己建了一个工程,复制那个程序在生成txt的文件下载到板子上面却没什么现象,求助啊,这么也不知道这是为什么啊…

查看全部问答>

学习感悟

  今年一开学开始学单片机,从LED灯到后面的i²c总线,真的感觉就像爬山一样。开始觉得有一种好奇与开心,然而越往上爬就越觉得体力不足。一学才知道,里面的电子元器件有好多不知道。就单片机里面的贴片式电阻都纠结了好久。因为越往后, ...…

查看全部问答>