WFLY 2.4G 遥控器接收机 STM32F1x开发
2021-11-22 来源:eefocus
一、遥控器和接收头类型
1.1 天地飞 WFT06X-A 2.4GHz 6通道遥控器
商品规格:六通道2.4G
1.2 WFR06S 2.4G 6通接收机
■产品规格:
频 段: 2.400GHz-2.483GHz
灵 敏 度: -97dBm
地面直线距离:大于700米
解码方式: PPM/PCMS 1024/PCMS 4096
电 源: 4.8-6V
尺 寸: 34.85×21×11.3mm
重 量: 5.8g
关于PPM解码方式,可以查看这篇文章。
https://www.docin.com/p-1556658364.html
1.3 对频说明:
1)发射机调到对频状态
2)接收机通电,长安SET键,灯闪硕进入对频状态,灯熄灭,对频成功!
那么如何对频呢?
一般流传的方法是:先摁住遥控器上的SET按钮,打开遥控器电源开关,遥控器上LED灯变红色并闪亮;再摁住接收器上LINK 按钮并打开接收电源开关,接收和遥控器的LED灯变绿并常亮。则对频成功。
1.4 模块线的连接
1.5 遥控器通道, tempup1, tempup2, tempup3 - - - 等值的测量范围,如图所示
二、程序开发
程序链接:
https://download.csdn.net/download/qq_37788383/11887785
2.1 主函数程序
#include 'stm32f10x.h'
#include 'delay.h'
#include 'sys.h'
#include 'usart.h'
#include 'wlfy.h'
extern u32 tempup1; //通道 1 捕获总高电平的时间
extern u32 tempup2; //通道 2 捕获总高电平的时间
extern u32 tempup3; //通道 3 捕获总高电平的时间
extern u32 tempup4; //通道 4 捕获总高电平的时间
extern u32 tempup5; //通道 5 捕获总高电平的时间
extern u32 tempup6; //通道 6 捕获总高电平的时间
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
TIM4_Cap_Init(0xffff,72-1);
TIM5_Cap_Init(0xffff,72-1);
uart_init(9600);
while(1)
{
printf('tempup 1 is %d rn',tempup1);
printf('tempup 2 is %d rn',tempup2);
printf('tempup 3 is %d rn',tempup3);
printf('tempup 4 is %d rn',tempup4);
printf('tempup 5 is %d rn',tempup5);
printf('tempup 6 is %d rn',tempup6);
printf('rn');
printf('rn');
printf('rn');
printf('rn');
delay_ms(2000);
}
}
2.2 遥控器 通信程序
关于遥控器到底如何控制你要控制的东西,根据tempup1、tempup2、tempup3 - - -的值,自己另行编程序
.h头文件
#include 'sys.h'
void TIM4_Cap_Init(u16 arr, u16 psc);
void TIM5_Cap_Init(u16 arr, u16 psc);