娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

NEC協議

發送端發送1 :560us脈沖 + 1680us低電平

發送端發送0 :560us脈沖 + 560us低電平

連發碼 : 9ms 低電平+2.5m 高電平+0.56ms 低電平 +97.94ms 高電平

引導碼 :9ms 的低電平 + 4.5ms 的高電平


接收端接收1 :560us低電平 + 1680us高電平

接收端接收0 :560us低電平 + 560us高電平

接收端連發碼 : 9ms 高電平+2.5m 低電平+0.56ms 高電平 +97.94ms 低電平

接收端引導碼 :9ms 的高電平 + 4.5ms 的低電平


接收端的數據引腳接上拉電平,也可以讓此腳連接的芯片引腳配置為上拉輸出模擬上拉電阻的作用。

因為此上拉電阻的作用使接收端空閑時是高電平,從而電平狀態與發送的相反。


對于接收端而言,數據1和數據0都是低電平變高電平,是個上升沿,于是可以使用上升沿觸發中斷。用高電平時間的不同來區分二者。


發送數據

發送一次共32位,每一位都可以觸發升沿觸發中斷


hongwai.c


#include "hongwai.h"

#include "systick.h"

 

u32 Hong_Data;  //紅外線接受的數據

u8 Hong_Flag; //接受是否完成

 

/*****************************************************************

函數名:Hongwai_Init() 

函數功能:紅外初始化

輸入:無

輸出:無

****************************************************************/

void Hongwai_Init()

{

    GPIO_InitTypeDef GPIO_InitStructure;

    EXTI_InitTypeDef EXTI_InitStructure;

    NVIC_InitTypeDef NVIC_InitStructure;

    

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG|RCC_APB2Periph_AFIO,ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉輸出,端口模擬它沒信號時高電平

    GPIO_InitStructure.GPIO_Speed  = GPIO_Speed_50MHz;

    GPIO_Init(GPIOG,&GPIO_InitStructure);

    

    GPIO_EXTILineConfig(GPIO_PortSourceGPIOG, GPIO_PinSource15); //選擇GPIO管腳用作外部中斷線路,重映射

    EXTI_ClearITPendingBit(EXTI_Line15);

    

    EXTI_InitStructure.EXTI_Line = EXTI_Line15;

    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿觸發,因為沒信號是高電平信號來低電平造成下降沿,正好以此為條件表示信號來了

    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;  //觸發模式是中斷

    EXTI_InitStructure.EXTI_LineCmd = ENABLE;

    EXTI_Init(&EXTI_InitStructure);

    

    NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

    NVIC_Init(&NVIC_InitStructure);

}

 

/*****************************************************************

函數名:Hig_Cou() 

函數功能:高電平時間判別函數

輸入:無

輸出:8位的時間判別參數

****************************************************************/

 

u8 Hig_Cou()

{

    u8 t=0;

    if(GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_15)) //獲取GPIOG_Pin_15的輸入狀態

    {

        t++;

        delay_us(20);

        if(t>=250) return t; //t每自加一次就延時20us

    }

    return t;

}

 

/*****************************************************************

函數名:EXTI15_10_IRQHandler()

函數功能:中斷服務函數,進行解碼并存儲

輸入:無

輸出:無

****************************************************************/

 

void EXTI15_10_IRQHandler()

{

    u8 tim;  //高電平時間參數變量

    u8 ok;   //引導碼有效變量

    u8 data; //接受高低電平

    u8 num;  //接受次數

    

    while(1)

    {

        if(GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_15)==1) //PG15輸入是高電平

        {

            tim = Hig_Cou();  //獲取高電平時間

            if(tim>=250) break;//超時錯誤

            if(tim<250&&tim>200) ok = 1;  //引導碼有效

            if(tim<90&&tim>70) data = 1;  //接受是高電平

            else if(tim<40&&tim>15) data = 0;   //接收是低電平

            

            if(ok)  //引導碼有效

            {

                Hong_Data <<=1;  //移位

                Hong_Data+=data; //把數據存入Hong_Data

            }

            

            if(num>=32)  //32位4字節都接受完

            {

                Hong_Flag = 1;  //傳輸完

                break;

            }

            num++;

        }

        EXTI_ClearITPendingBit(EXTI_Line15); //消除EXTI_Line15的中斷標志位

    }

}

 

hongwai.h


#ifndef _hongwai_H

#define _hongwai_H

 

#include "system.h"

 

extern u32 Hong_Data;//全局變量

extern u8 Hong_Flag;

void Hongwai_Init(void);

u8 Hig_Cou(void);

 

    

#endif

 

main.c


#include "system.h"

#include "SysTick.h"

#include "led.h"

#include "usart.h"

#include "hongwai.h"

 

int main()

{

    u8 i=0;

    

    SysTick_Init(72);

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中斷優先級分組 分2組

    LED_Init();

    USART1_Init(9600);

    Hongwai_Init();

    while(1)

    {   

        if(Hong_Flag==1)//接受完成

        {

            Hong_Flag=0; //清空標志位,供下次使用

            printf("發紅外接收碼是:%.8Xrn",Hong_Data);

            Hong_Data=0;//清空數據供下次使用

        }

        

        i++;

        if(i%20==0)

        {

            led1=!led1;

        }

        

        delay_ms(10);

            

    }

}

關鍵字:stm32  紅外遙控 引用地址:stm32---紅外遙控

上一篇:stm32---RS485半雙工通信
下一篇:stm32---DS18b20

推薦閱讀

本書介紹并分析了目前常用的電工電路,包括照明電路、低壓供電線路、電風扇電路、電動設備控制電路、靜態繼電器控制電路、變頻器和可編程控制器應用電路、水泵控制電路、漏電保護開關線路、電子時間繼電器電路、彩燈控制電路、起重設備控制電路、儀表與判別電路以及其他電路。本書內容由淺入深,通俗易懂,語言精練,圖文并茂,內容豐富,應用廣泛,解說明...
Yann LeCun、Geoffrey Hinton、Yoshua BengioYoshua Bengio(58歲)是蒙特利爾大學教授,也是魁北克人工智能研究所的科學主任;Geoffrey Hinton(71歲)是谷歌副總裁和Engineering Fellow,Vector人工智能研究院首席科學顧問,多倫多大學名譽教授;Yann LeCun(55歲)是紐約大學教授、Facebook副總裁兼首席AI科學家。2019年3月27日,ACM宣布,深度學習...
(文章來源:新戰略機器人網) ?臂展,是指并聯機器人末端在水平面上的最大工作直徑,機器人P點在水平面可達到的最遠點到機器人基座中心點的距離則為最大工作半徑,即臂展的一半。最大拾取高度即最大垂直運動范圍,是指機器人P點能夠到達的最低點(通常低于機器人的動平臺)與最高點之間的范圍。 但在實際應用中,不同的機器人、不同的應用場景都影響...
2021年3月26-27日,第四屆中國人工智能與機器人開發者大會(CAIRDC)暨·長三角G60科創走廊洞涇人工智能全產業鏈大會,于上海富悅大酒店如期召開。藉此大會,大族機器人舉辦“智進未來”主題新品發布會,重磅推出全新智能協作機器人——MAiRA,引領協作機器人步入智能時代。CAIRDC是中國人工智能和機器人領域開發者的年度盛會,匯聚了一眾在人工智能、機...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 昆山市| 镇安县| 朝阳市| 柞水县| 闽侯县| 琼中| 察雅县| 扬中市| 福贡县| 吴忠市| 化隆| 宝坻区| 鹤壁市| 迁西县| 东至县| 岳西县| 博湖县| 高碑店市| 五莲县| 兴文县| 平江县| 莎车县| 清河县| 灯塔市| 五河县| 永春县| 祁连县| 四平市| 宝坻区| 前郭尔| 泊头市| 连江县| 东源县| 泌阳县| 金平| 樟树市| 旅游| 文昌市| 西华县| 夏津县| 马公市|