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

選擇芯片型號(hào)

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

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

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

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

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

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

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

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

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

教學(xué)視頻
