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

歷史上的今天

今天是:2025年06月27日(星期五)

2019年06月27日 | 基于STM32的學習型通用紅外遙控設備的設計實現

發布者:SereneSoul55 來源: eefocus關鍵字:STM32  紅外遙控設備 手機看文章 掃描二維碼
隨時隨地手機看文章

CPU: STM32

調試平臺: STM32F103ZET和STM32F103VBT

軟件平臺: Keil uVision4

電路設計: Altium Designer v6.9


二、學習型紅外遙控設備的各個模塊實現

2.4 紅外脈寬存儲及FLASH的讀寫

根據STM32型號的不同,FLASH容量由16K到1024K不等。

FLASH模塊主要由三部分組成:主存儲器、信息塊、閃存存儲器接口寄存器。FLASH模塊組織:

詳細內容見《STM32中文參考手冊》小節《2.3.3 嵌入式閃存》。


主存儲器用來存放代碼和數據常數,對于大容量產品,劃分為256頁,每頁2K字節;中小容量產品每頁則是1K。信息塊的啟動程序代碼用來存儲ST自帶的啟動程序,用于串口下載,用戶選擇字節一般用來配置寫保護、讀保護。閃存存儲器接口寄存器是整個閃存模塊的控制機構,控制閃存的讀寫。

FLASH可以在通用地址空間直接尋址,任意32位數據的讀操作都能訪問FLASH內容,得到相應數據。FLASH的最快訪問速度≤24MHz,如果CPU頻率超過24MHz,必須加入等待時間。對于72MHz的主頻,FLASH的等待周期必須設置為2。

FLASH的編程和擦除。STM32的FLASH編程由FPEC模塊操作,在系統復位后,FPEC模塊會被保護起來,不能寫入。只有寫入特定的序列到FLASH_KEYR寄存器打開FPEC模塊解除寫保護后才能操作相關寄存器。

注意:STM32閃存編程每次必須寫入16位的數據,且要求寫入地址的FLASH已經擦除,否則寫入無效。

在指定地址寫入指定個數的數據,操作流程圖如下圖所示:

示例代碼見附件。


使用硬件仿真功能測試數據的讀寫是否正確。在Debug模式下,單步執行寫數據函數FLASH_WriteData()和讀數據函數FLASH_ReadData(),寫入和讀出的數據如下圖所示:

 

2.5 中斷方式實現的學習按鍵

學習按鍵的程序用外部中斷的中斷線2實現。


示例代碼見附件。


 

2.6 紅外信號的調制發送

由于學習是對紅外脈沖的完整復制,故發送只需把FLASH里的紅外數據取出調制到載波上發送出去即可,實現流程圖如下圖所示:


示例代碼如下:

 /**

 * SendPort_Init(void) 紅外發送端口控制初始化

 */

void SendPort_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

/** 使能PD端口時鐘 */

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

/** 使能PD端口配置 */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 |GPIO_Pin_2 |GPIO_Pin_3;  //LED0-->PF6~~~PF10 端口配置

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;

GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_SetBits(GPIOC, GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_2); // PD0~~~PD2輸出高

GPIO_ResetBits(GPIOD, GPIO_Pin_3); // 注意!!!!!!!!!!!!

}


/**

 * 示波器接收的鍵碼  52:  0101 0010

 * 單片機接收的鍵碼  4A:  0100 1010

 * 發送的鍵碼  4A:  0100 1010

 * 驗證平臺: 長虹電視機、單片機

 * 驗證通過: 電視機可接收

 */

u16 sendCode[200] = {0};

void IR_SendData(u32 SendAddr)

{

u8 i;

#if 0

u16 sendCode[200] = {0};

// 已通過驗證

for(i=0; i<199; i++){

sendCode[i] = PulseTab[i];

}

#endif

FLASH_ReadData(SendAddr,sendCode,200); // 從相應FLASH地址取出數據

for (i=0; i<100; i++) {

if ((sendCode[2*i]!=0) && (sendCode[2*i+1]!=0)) {

IR_SEND = 0;

delay_us(sendCode[2*i]);

IR_SEND = 1;

delay_us(sendCode[2*i+1]);

}

}

// IR_SEND = 0;

/** 下面兩句及其重要,否則出錯!!! */

// delay_us(555);

IR_SEND = 1;

}

遙控器減號鍵如下圖所示:


2.7 TFT顯示模塊

TFT是Thin Film Transistor(薄膜場效應晶體管)的簡稱,這種液晶顯示器上的每一像素點都由集成在后面的薄膜場效應晶體管驅動。故而這種顯示器速度快、亮度高、對比度高,分辨率也較其他類型的液晶顯示器高。

TFT液晶的驅動時序如下圖所示:

 


3 整個系統

整個系統完整的程序見附件(為減小文件,刪除了一些編譯時產生的文件,故工程需要重新編譯)  


系統實物圖

參考文獻

[1] 廖義奎編著. Cortex-M3之STM32嵌入式系統設計. 北京: 中國電力出版社,2012.


[2] 張彬杰. 22個元件做出學習型遙控器[J]. 無線電, 2010(08):79-82.


[3] 意法半導體(中國)投資有限公司. STM32中文參考手冊. 2010.


關鍵字:STM32  紅外遙控設備 引用地址:基于STM32的學習型通用紅外遙控設備的設計實現

上一篇:STM32復習筆記(七)定時器&定時器中斷
下一篇:基于stm32C8T6的紅外遙控器制作

推薦閱讀

引 言IAP即在應用中編程,對于嵌入式產品,指在不影響產品正常運行的情況下實現應用程序的更新。許多ARM芯片都提供該操作接口,相對于ISP(在系統編程)方式,具有方便靈活且不需要借助專用boot裝載程序或工具的特點,而且在不影響嵌入式產品正常運行的情況下即可完成應用程序的動態升級。在工業控制領域尤其是電力系統控制領域中,嵌入式產品必須保證連續...
6月24日以來,在上海正在循環熱播的《我和我的祖國》快閃MV當中,兩個手舞國旗的人形機器人,吸引了無數觀眾的目光。很自然的,它們會讓人馬上聯想到已經三次登上央視春晚舞臺的跳舞機器人。不同的是,春晚跳舞機器人,出自獲得騰訊等巨頭加持、估值百億美元的深圳優必選科技公司。而這兩個“萌萌噠”機器人,則是由一家創立僅僅兩年的上海本地公司“恒元...
在mini2440的myled裸機程序中頭文件 2440addr.ini 定義了寄存器符號。;====================================================================; File Name : 2440addr.a; Function : S3C2440 Define Address Register (Assembly); Date : March 27, 2002; Revision : Programming start (February 18,2002) -> SOP; Re...
6月24日,現代汽車集團旗下汽車零部件制造子公司現代摩比斯宣布推出全新車輛信息系統。該系統將數字集群與抬頭顯示器(HUD)相結合,是汽車行業首款無集群HUD,可使該公司在汽車信息娛樂市場保持領先地位。現代摩比斯表示,其“無集群HUD”將成為電動汽車(EV)等未來汽車的主流,可在簡化和集成的屏幕上顯示車輛操作相關的各種信息。(圖片來源:現代摩比...

史海拾趣

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

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 延寿县| 靖宇县| 涟水县| 鲜城| 从江县| 长寿区| 沙河市| 淄博市| 噶尔县| 辉南县| 辽阳县| 晋城| 宁都县| 天全县| 河东区| 牙克石市| 曲阳县| 龙岩市| 偃师市| 威宁| 乌兰县| 东丽区| 永善县| 比如县| 红桥区| 普定县| 泸定县| 梁平县| 阳信县| 寿宁县| 壶关县| 万源市| 彭州市| 益阳市| 临朐县| 太和县| 沛县| 秦皇岛市| 理塘县| 额济纳旗| 布拖县|