www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號(hào)精選 > 嵌入式客棧
[導(dǎo)讀]紅外遙控是我們經(jīng)常見到的一種無線收發(fā)設(shè)備,比如電視遙控,空調(diào)遙控,現(xiàn)在電視遙控有些慢慢變成了藍(lán)牙裝置。昨天是在知識(shí)星球里面看到有人提問,今天來解析一份網(wǎng)友寫的驅(qū)動(dòng)程序。調(diào)試紅外需要注意幾個(gè)細(xì)節(jié)1、我們發(fā)射的遙控器用肉眼是看不到的,需要拿相機(jī)來觀察。2、紅外接收管和普通的二極管不同...

紅外遙控是我們經(jīng)常見到的一種無線收發(fā)設(shè)備,比如電視遙控,空調(diào)遙控,現(xiàn)在電視遙控有些慢慢變成了藍(lán)牙裝置。昨天是在知識(shí)星球里面看到有人提問,今天來解析一份網(wǎng)友寫的驅(qū)動(dòng)程序。


調(diào)試紅外需要注意幾個(gè)細(xì)節(jié)

1、我們發(fā)射的遙控器用肉眼是看不到的,需要拿相機(jī)來觀察。

2、紅外接收管和普通的二極管不同,如果用錯(cuò)物料也是不行的。



1.NEC協(xié)議無線傳輸數(shù)據(jù)原理


NEC協(xié)議的特征:?


1、8位地址和8位指令長度;?

2、地址和命令兩次傳輸;(確??煽啃裕?

3、PWM脈沖寬度調(diào)制,以發(fā)射紅外載波的占空比代表“0”和“1”;?

4、載波頻率為38KHz?

5、位時(shí)間為1.125ms和2.25ms?


NEC碼位的定義:一個(gè)脈沖對(duì)應(yīng)560us的連續(xù)載波,一個(gè)邏輯1傳輸需要2.25ms(560us脈沖 1680us低電平),一個(gè)邏輯0的 傳輸需要1.125ms(560us脈沖 560us低電平)。


而遙控接收頭在收到脈沖時(shí)為低電平,在沒有收到脈沖時(shí)為高電平,因此, 我們?cè)诮邮疹^端收到的信號(hào)為:邏輯1應(yīng)該是560us低 1680us高,邏輯0應(yīng)該是560us低 560us高。


如下圖:




硬件




2. Linux下的驅(qū)動(dòng)接收程序


參考原文:


https://blog.csdn.net/wllw7176/article/details/110506677


兩個(gè)驅(qū)動(dòng)文件


gpio-ir-recv.c

/*?Copyright?(c)?2012,?Code?Aurora?Forum.?All?rights?reserved.
?*
?*?This?program?is?free?software;?you?can?redistribute?it?and/or?modify
?*?it?under?the?terms?of?the?GNU?General?Public?License?version?2?and
?*?only?version?2?as?published?by?the?Free?Software?Foundation.
?*
?*?This?program?is?distributed?in?the?hope?that?it?will?be?useful,
?*?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?*?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the
?*?GNU?General?Public?License?for?more?details.
?*/


#include?

  • #include?

  • #include?

  • #include?

  • #include?

  • #include?

  • #include?

  • #include?

  • #include?

  • #include?

  • #include?
    #include?

    #define?GPIO_IR_DRIVER_NAME?"gpio-rc-recv"
    #define?GPIO_IR_DEVICE_NAME?"gpio_ir_recv"

    struct?gpio_rc_dev?{
    ?struct?rc_dev?*rcdev;
    ?int?gpio_nr;
    ?bool?active_low;
    };

    #ifdef?CONFIG_OF
    /*
    ?*?Translate?OpenFirmware?node?properties?into?platform_data
    ?*/

    static?int?gpio_ir_recv_get_devtree_pdata(struct?device?*dev,
    ??????struct?gpio_ir_recv_platform_data?*pdata)

    {
    ?struct?device_node?*np?=?dev->of_node;
    ?enum?of_gpio_flags?flags;
    ?int?gpio;

    ?gpio?=?of_get_gpio_flags(np,?0,?
  • 本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
    關(guān)閉
    關(guān)閉