找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3737|回复: 1
收起左侧

STM32F103的红外遥控的源程序

[复制链接]
ID:205526 发表于 2019-3-31 20:33 | 显示全部楼层 |阅读模式
本次的源程序是使用C语言编写,属于学习STM32单片机的实验,可以进行二次开发!接上继电器可以遥控其他想控制的设备!

单片机源程序如下:
  1. /*-------------------------------------------------------------------------------
  2. 文件名称:main.c
  3. 文件描述:TC9012 系列红外遥控器解码实验
  4. 硬件平台:尼莫M3S开发板+超薄红外遥控器

  5. 备    注:通过简单修改可以移植到其他开发板,部分资料来源于网络。
  6. ---------------------------------------------------------------------------------*/
  7. #include <stdio.h>
  8. #include "stm32f10x.h"
  9. #include "led.h"
  10. #include "Delay.h"
  11. #include "key.h"
  12. #include "timer.h"
  13. #include "beep.h"
  14. #include "usart.h"
  15. #include "adc.h"
  16. #include "lcd.h"
  17. #include "24cxx.h"
  18. #include "flash.h"
  19. #include "can.h"
  20. #include "remote.h"


  21. int main(void)
  22. {               
  23.         u8 key;
  24.         u8 t=0;        
  25.         u8 *str=0;
  26.         
  27.         LED_Init();//LED初始化
  28.   KEY_Init();//按键初始化
  29.   SysTick_Init();//延时初始化
  30.   USART1_Int(9600);
  31.         LCD_Init();
  32.   printf("\n\r(德飞莱)尼莫M3S开发板TFT LCD CAN mode 测试程序\r");                  

  33.          Remote_Init();                        //红外接收初始化                        

  34.          POINT_COLOR=RED;//设置字体为红色
  35.         LCD_ShowString(60,50,200,16,16,"M3S STM32");        
  36.         LCD_ShowString(60,70,200,16,16,"REMOTE test");        
  37.         LCD_ShowString(60,90,200,16,16,"00000000");
  38.         LCD_ShowString(60,110,200,16,16,"TC9012 IC");

  39.   LCD_ShowString(60,130,200,16,16,"KEYVAL:");        
  40.   LCD_ShowString(60,150,200,16,16,"KEYCNT:");        
  41.   LCD_ShowString(60,170,200,16,16,"SYMBOL:");         
  42.          while(1)
  43.         {
  44.         key=Remote_Scan();        
  45.                 if(key)
  46.                 {         
  47.                         LCD_ShowNum(116,130,key,3,16);                //显示键值
  48.                         LCD_ShowNum(116,150,RmtCnt,3,16);        //显示按键次数                  
  49.                         switch(key)
  50.                         {
  51.                                 case 0:str="ERROR";break;                           
  52.                                 case 162:str="CH-";break;            
  53.                                 case 98:str="CH";break;            
  54.                                 case 2:str="NEXT";break;                 
  55.                                 case 226:str="CH+";break;                  
  56.                                 case 194:str="PLAY";break;           
  57.                                 case 34:str="PREV";break;                  
  58.                                 case 224:str="VOL-";break;                  
  59.                                 case 168:str="VOL+";break;                  
  60.                                 case 144:str="EQ";break;                    
  61.                                 case 104:str="0";break;                  
  62.                                 case 152:str="FL-";break;           
  63.                                 case 176:str="FL+";break;            
  64.                                 case 48:str="1";break;                    
  65.                                 case 24:str="2";break;                    
  66.                                 case 122:str="3";break;                  
  67.                                 case 16:str="4";break;                                                                  
  68.                                 case 56:str="5";break;         
  69.                                 case 90:str="6";break;
  70.                                 case 66:str="7";break;
  71.                                 case 74:str="8";break;
  72.                                 case 82:str="9";break;                 
  73.                         }
  74.                         LCD_Fill(116,170,116+8*8,170+16,WHITE);        //清楚之前的显示
  75.                         LCD_ShowString(116,170,200,16,16,str);        //显示SYMBOL
  76.                 }
  77.                 else Delay_ms(10);         
  78.                 t++;
  79.                 if(t==20)
  80.                 {
  81.                         t=0;
  82.                         LED2_REV;
  83.                 }
  84.         }
  85. }
复制代码

所有资料51hei提供下载:
STM32F103的红外遥控的源程序.7z (237.13 KB, 下载次数: 127)
回复

使用道具 举报

ID:331198 发表于 2020-6-16 08:49 | 显示全部楼层
谢谢分享,试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表