|
親測(cè) 可用 上傳視頻 太麻煩了
stm32單片機(jī)433M無(wú)線解碼源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "usart.h"
- #include "timer.h"
-
- /************************************************
- APB1 的時(shí)鐘為 36M, 而從 STM32 的內(nèi)部時(shí)鐘樹(shù)圖得知:當(dāng) APB1 的時(shí)鐘分頻數(shù)為 1 的
- 時(shí)候, TIM2~7 的時(shí)鐘為 APB1 的時(shí)鐘,而如果 APB1 的時(shí)鐘分頻數(shù)不為 1,那么 TIM2~7 的時(shí)
- 鐘頻率將為 APB1 時(shí)鐘的兩倍。因此, TIM3 的時(shí)鐘為 72M,再根據(jù)我們?cè)O(shè)計(jì)的 arr 和 psc 的值,
- 就可以計(jì)算中斷時(shí)間了。計(jì)算公式如下:
- Tout= ((arr+1)*(psc+1))/Tclk;
- 其中:
- Tclk: TIM3 的輸入時(shí)鐘頻率(單位為 Mhz)。
- Tout: TIM3 溢出時(shí)間(單位為 us)
- 1ms=1000us
- ************************************************/
- uint8_t rf_data[4];
- extern uint8_t decode_ok; //解碼成功標(biāo)志位
- extern uint8_t RF;
- int main(void)
- {
-
- delay_init(); //延時(shí)函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- uart_init(115200); //串口初始化為115200
- LED_Init(); //LED端口初始化
- TIM3_Int_Init(79,71);//10Khz的計(jì)數(shù)頻率,計(jì)數(shù)到5000為500ms 90us
- while(1)
- {
- if(decode_ok == 1) //解碼成功
- {
- switch(rf_data[2])
- {
- case 0x84: //解碼為0xf8,點(diǎn)亮LED
- {
- LED0=0;
- break;
- }
- case 0x82: //解碼為0xf2,熄滅LED
- {
- LED1=0;
- break;
- }
- case 0x81: //解碼為0xf2,熄滅LED
- {
- LED0=1;
- LED1=1;
- break;
- }
- }
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
433解碼程序.rar
(292.75 KB, 下載次數(shù): 650)
2018-9-30 15:15 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|