完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
STM32 红外线模块
一.原理 1.连接跳线帽 如图,画圈的黑色部分为红外线模块的硬件设备,黄色为跳线帽,记住使用的时候一定要连跳线帽,否者无法使用。 2.NEC协议 首先红外线的主要载波频率 高电平 38Khz 低电平 无载波 码位定义:560 us一个脉冲 信号1:2.25ms (560us脉冲+1680us低电平) 信号0:1.125ms (560us脉冲+560us低电平) 则接收头接受的信号为: 信号1:2.25ms (560us低电平+1680us脉冲) 信号0:1.125ms (560us低电平+560us脉冲) NEC指令格式:同步码头(9ms低电平+4.5ms高电平),地址码头(区分红外遥控器),地址反码,控制码,控制反码(8位数据格式,反码用于校验),连发码(9ms低电平+2.5ms高电平+0.56ms低电平+97.94ms高电平,以此来统计连发码的次数来标记按键按下的次数) 注:如果高电平超过100ms,一般是超过130ms以后,认为不是连发码。 3.引脚方面 战舰和精英的开发板是PB9引脚;(该引脚接的是定时器4的第四个通道) mini的开发板则是PA1的引脚;(该引脚接的是定时器5的第二个通道) 由于定时器和引脚的不同,三个开发板的红外线模块的程序也略有不同。 4.大致思路 1.开启定时器的输入捕获,设置为上升沿捕获。(频率为1MHZ,装载值为10000,溢出时间为10ms); 2.中断,更新和捕获。(上升捕获,溢出更新); 3.上升捕获调为下降捕获,定时器计数值设置为0. 对捕获值进行判断; 300-800(650us,逻辑值0) 1400-1800(1680us,逻辑值1) 2200-2600(2500us,连发码) 4200-4700(4500us,同步码) 注:定时器溢出,若收到同步码,且第一次溢出,则标记一次信息采集成功。 二.代码讲解 首先是对PA1端口的使能,载设置定时器5的通道2.频率为1M,装载值为1000,溢出时间为10ms。,在设置中断(跟新中断和捕获中断)。设置中断一定要记住,在此之前,要设置中断优先级。 RmtSta 有8位,每一位表示的意思都不一样。 位7(第8位),表示是否接受到了引导码(同步码)。 位6(第7位),为接受信息的标志,接受完所有信息为1. 位5(第6位)保留。 位4(第5位),标记上升沿是否已经捕获。 位【3:0】(第1-4位),溢出计时器。 Dval 下降沿计数器的值 RmtRec 红外接受到的数据 RmtCnt 按键按下的次数 程序的大致思路为看前文所示。 接受完信号后,就是对信号的处理。先将信号进行分离。分为地址码,地址反码。再进行分析,如图所示。 最后就是通过LCD 屏,对接受到的数据进行显示,如图所示。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
740浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
577浏览 3评论
600浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
562浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 06:39 , Processed in 0.798662 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号