找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1517|回復: 1
打印 上一主題 下一主題
收起左側

stm32紅外發(fā)送程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:796450 發(fā)表于 2020-7-14 18:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  1. #include "ir.h"
  2. #include "pwm.h"
  3. #include "delay.h"



  4. void output_38k(int delay)
  5. {
  6.         pwm_set_enable(1);
  7.         delay_us(delay + PWM_ON_DELAY);
  8. }
  9. void output_38k_off(int delay)
  10. {
  11.         pwm_set_enable(0);
  12.         delay_us(delay - PWM_OFF_DELAY);
  13. }

  14. void send_bit(int bit)
  15. {
  16.         if (bit == 1) {
  17.                 output_38k(NEC_BIT_MARK);
  18.                 output_38k_off(NEC_ONE_SPACE);
  19.         } else if (bit == 0) {
  20.                 output_38k(NEC_BIT_MARK);
  21.                 output_38k_off(NEC_ZERO_SPACE);
  22.         } else {
  23.                 //printf("critical error!\n");
  24.         }
  25. }

  26. void send_byte(unsigned char byte)
  27. {
  28.         int  i = 0;

  29.         for (i = 7; i >= 0; i--)
  30.                 send_bit(((byte & BIT(i)) >> i));
  31.                
  32. }

  33. void send_ir_data(unsigned char* data, int len)
  34. {
  35.         int i  = 0;
  36.        
  37.         output_38k(NEC_HDR_MARK);
  38.         output_38k_off(NEC_HDR_MARK);

  39.         for (i = 0; i < len; i++)
  40.                 send_byte(data[i]);

  41.         send_bit(1);
  42.         delay_us(NEC_HDR_MARK- PWM_OFF_DELAY);

  43. }


  44. #if 0

  45. /* 0xb2,0x4d,0x9f,0xe0,0xd8,0xaf */
  46. unsigned int rawCodes_ac_open[] = {4397,4368,561,1578,560,537,557,1581,584,1582,584,486,558,537,584,1554,
  47.         560,538,558,510,558,1607,557,513,585,511,556,1585,581,1583,583,486,557,1609,556,513,558,538,557,512,558,
  48.         1607,558,1583,557,1608,558,1608,557,1580,559,1606,559,1581,556,1609,557,512,559,537,558,512,557,539,557,
  49.         512,558,1607,558,1582,558,537,584,1555,558,1607,556,514,559,537,556,513,558,537,556,514,558,1606,559,511,
  50.         583,513,558,1582,557,1608,558,1580,585,5154,4419,4347,584,1555,558,539,557,1581,584,1581,571,501,577,516,
  51.         571,1568,557,541,581,487,557,1608,557,513,558,538,557,1582,583,1582,584,487,557,1608,557,511,611,486,558,
  52.         510,558,1607,557,1609,556,1583,583,1582,583,1555,558,1607,558,1607,559,1582,557,537,585,486,558,510,558,
  53.         540,558,509,557,1608,558,1608,557,512,559,1606,559,1581,558,537,581,490,558,510,587,511,557,511,559,1606,
  54.         559,510,569,527,558,1582,560,1604,561,1605,561};


  55. void send_raw(int *code, int size)
  56. {

  57.         int i = 0;


  58.         for (i = 0; i < size; i++) {
  59.                 if (i%2 == 0) {
  60.                         output_38k(code[i]);
  61.                 } else {
  62.                         output_38k_off(code[i]);
  63.                        
  64.                 }
  65.         }
  66. }

  67. #endif

復制代碼


stm32_ir_send.7z

161.2 KB, 下載次數(shù): 21, 下載積分: 黑幣 -5

ir發(fā)送端

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2020-7-20 03:27 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表