STM32CUBEMX(5)--自定義紅外NEC解碼,定時器TIM捕獲方式
概述
????本篇文章主要介紹如何使用STM32CubeMX對紅外波形進(jìn)行解碼,并通過串口打印。
硬件準(zhǔn)備
?????首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是NUCLEO-F030R8的開發(fā)板:??

選擇芯片型號

配置時鐘源
????HSE與LSE分別為外部高速時鐘和低速時鐘,在本文中使用內(nèi)置的時鐘源,故都選擇Disable選項,如下所示。

配置時鐘樹
????STM32F0的最高主頻到48M,所以配置48即可。

? 串口配置
????本次實驗使用的串口1進(jìn)行串口通信,波特率配置為115200。

定時器配置
????本次使用定時器1的通道2進(jìn)行檢測,配置入下。

紅外接收管
????這里使用VS838的接收管,如下所示。

紅外編碼
????NEC協(xié)議載波:38khz
????其邏輯1與邏輯0的表示如圖所示。

????NEC協(xié)議格式。

??自定義紅外編碼
????協(xié)議如下。

代碼
????在main.c中,添加頭文件,若不添加會出現(xiàn) identifier "FILE" is undefined報錯。
????紅外接收口定義。
????函數(shù)聲明和串口重定向。
????定時器配置。
????紅外接收代碼
[4400,5000]是用于捕獲4.5ms的信號
[550,700]是用于捕獲560us的數(shù)據(jù)0信號
[1100,1250]是用于捕獲1120us的數(shù)據(jù)1信號
[2000,2500]是用于捕獲2240us的截止位信號
????主函數(shù)。
結(jié)果演示
????紅外連續(xù)發(fā)送5次碼值,發(fā)送分別為:
1011(11)
11 1010(58)
11 0001(49)
11 1111(63)
11 0011(51)
????分別如下所示:

教學(xué)視頻

標(biāo)簽: