手機(jī)紅外遙控器發(fā)送紅外信號(hào)到STM32【HAL庫(kù)】

現(xiàn)在大部分手機(jī)上都有紅外遙控功能,而且好像大部分信號(hào)STM32都是可以收到的?,F(xiàn)在就使用STM32發(fā)送紅外信號(hào),由STM32上的紅外接收器接收后執(zhí)行不同的操作。以下是注意事項(xiàng):

在標(biāo)準(zhǔn)庫(kù)中有? EXTI_ClearITPendingBit(EXTI_Line15); 清除中斷位,使用HAL庫(kù)不用使用清除中斷位

在HAL庫(kù)中NVIC的設(shè)置在文件stm32f1xx_hal_cortex.c中

HAL_Delay并不能實(shí)現(xiàn)us的延時(shí)效果,要自己寫(xiě)

? ? ? ? ? ? void delay_us(uint32_t i)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? uint32_t temp;

? ? ? ? ? ? ? ? SysTick->LOAD=9*i;

? ? ? ? ? ? ? ? SysTick->CTRL=0X01;

? ? ? ? ? ? ? ? SysTick->VAL=0;

? ? ? ? ? do

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? temp=SysTick->CTRL;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? while((temp&0x01)&&(!(temp&(1<<16))));

? ? ? ? ? ? ? SysTick->CTRL=0;

? ? ? ? ? ? ? SysTick->VAL=0;

? ? ? ? ? }

紅外接收器的數(shù)據(jù)引腳為PG15

PG15的設(shè)置

/*Configure GPIO pin : PG15 */

GPIO_InitStruct.Pin = GPIO_PIN_15;

GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;? //下降沿觸發(fā)

GPIO_InitStruct.Pull = GPIO_PULLUP;? //上拉模式

HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);

RCC設(shè)置72MHz,要注意,時(shí)鐘頻率不同,計(jì)算時(shí)使用的數(shù)值大小不同

要printf輸出到串口還是要重定向printf

#ifdef __GNUC__

/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf

set to 'Yes') calls __io_putchar() */

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

#else

#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)

#endif /* __GNUC__ */

/**

* @brief? Retargets the C library printf function to the USART.

* @param? None

* @retval None

*/

PUTCHAR_PROTOTYPE

{

/* Place your implementation of fputc here */

/* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */

HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

return ch;

}

手機(jī)遙控器鍵位對(duì)應(yīng)編碼

1 紅外接收碼 926D22DD

2 紅外接收碼 926DA25D

3 紅外接收碼 926D629D

4 紅外接收碼 926D609F

5 紅外接收碼 926DE01F

6 紅外接收碼 926D827D

7 紅外接收碼 926D6897

8 紅外接收碼 926D02FD

9 紅外接收碼 926DAA55

0 紅外接收碼 926D12ED


圖片發(fā)自簡(jiǎn)書(shū)App
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 標(biāo)準(zhǔn)庫(kù)占絕大多數(shù),自己買(mǎi)的板子跟的資料也一般是標(biāo)準(zhǔn)庫(kù),HAL庫(kù)很少,不過(guò)要是使用STM32CubeMx配置,那么就...
    停下浮躁的心閱讀 7,002評(píng)論 0 3
  • 姓名:周崇杰 學(xué)號(hào):16140120059 專(zhuān)業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化 轉(zhuǎn)載自:http://blog.csd...
    CJbaby閱讀 4,884評(píng)論 0 5
  • 前言 之前一直在Linux下面嘗試進(jìn)行部署了RT-Thread的stm32的開(kāi)發(fā),這種方式確實(shí)是可行的,但是也會(huì)帶...
    linanwx閱讀 6,711評(píng)論 0 2
  • 姓名:周崇杰 學(xué)號(hào):16140120059 專(zhuān)業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化 轉(zhuǎn)載自:http://blog.csd...
    CJbaby閱讀 3,654評(píng)論 0 3
  • 此文用于記錄學(xué)習(xí)STM32中所學(xué)習(xí)或者鞏固的知識(shí),主要圍繞但并不局限于STM32。 本次學(xué)習(xí)并非為了深入了解使用S...
    yhhk閱讀 2,276評(píng)論 0 11

友情鏈接更多精彩內(nèi)容