完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
1.硬件
硬件:Nucleo-F103RBTx、红外接收管 注意事项:市面上红外接收管型号很多,引脚排序方式也不同,需注意引脚的排列方式,硬件不要接错了。 硬件连接:红外接收管与Nucleo-f103开发板用杜邦线按照下表进行连接 2.软件 CubeMX配置: PA8配置为外部中断模式,上/下沿方式触发,配置上拉电阻,使能中断,默认优先级。 代码编写: 根据正点原子库函数改写。 (1).hw.h #ifndef _HW_H #define _HW_H #include "main.h" //定义全局变量 extern uint32_t hw_code; extern uint8_t hw_flag; void delay_us(uint32_t us); uint8_t HW_time(void); #endif (2).hw.c #include "hw.h" uint32_t hw_code; //定义一个32位数据变量,保存接收码 uint8_t hw_flag; //定义一个8位数据的变量,用于指示接收标志 //微秒级延时函数,系统时钟频率位64MHz void delay_us(uint32_t us) { uint32_t delay = (HAL_RCC_GetHCLKFreq() / 6000000 * us); while (delay--) { ; } } //判断是否接收到有效红外信号(高电平持续时间,将记录的时间保存在t中返回,其中一次大约20us) uint8_t HW_time() { uint8_t t=0; while(HAL_GPIO_ReadPin(HW1_GPIO_Port,HW1_Pin)==1)//高电平 { t++; delay_us(20); if(t>=250) return t;//超时溢出 } return t; } //红外遥控外部中断服务函数 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { uint8_t Tim=0,Ok=0,Data,Num=0; while(1) { if(HAL_GPIO_ReadPin(HW1_GPIO_Port,HW1_Pin)==1) { Tim=HW_time();//获得此次高电平时间 if(Tim>=250) break;//不是有用的信号 if(Tim>=200 && Tim<250) { Ok=1;//收到起始信号 } else if(Tim>=60 && Tim<90) { Data=1;//收到数据 1 } else if(Tim>=10 && Tim<50) { Data=0;//收到数据 0 } else break; if(Ok==1) { hw_code<<=1; hw_code+=Data; if(Num>=32) { hw_flag=1; break; } } Num++; } } } (3).main.c while (1) { /* USER CODE BEGIN 3 */ if(hw_flag==1) //如果红外接收到有效信号 { hw_flag=0; //清除接收标志 printf("红外接收码 %0.8Xrn",hw_code); //打印 hw_code=0; //接收码清零 } HAL_Delay(10); } /* USER CODE END 3 */ 如何实现串口发送功能此处省略。 3.操作 连接串口助手,红外遥控器对着红外接收管任意按键,当检测到有信号输入,单片机对信号解码并串口打印出来。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4130 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3221 浏览 1 评论
2747 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2175 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14939 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3084浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1892浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2064浏览 3评论
1976浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2165浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:20 , Processed in 0.745746 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1620