K_A31_002 基于STM32等单片机驱动315MHZ收发模块 串口显示

K_A31_002 基于STM32等单片机驱动315MHZ收发模块 串口显示

  • 所有资源导航
  • 一、资源说明
  • 二、基本参数
    • 参数
    • 引脚说明
  • 三、驱动说明
    • 原理:
    • 对应程序:
  • 四、部分代码说明
    • 1、接线引脚定义
      • 1.1、STC89C52RC+315MHZ收发模块
      • 1.2、STM32F103C8T6+315MHZ收发模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

K_A31_002 基于STM32等单片机驱动315MHZ收发模块 串口显示_第1张图片
K_A31_002 基于STM32等单片机驱动315MHZ收发模块 串口显示_第2张图片

所有资源导航

其他资料目录 直戳跳转

一、资源说明

单片机型号 测试条件 模块名称 代码功能
STC89C52RC 晶振11.0592M H34C发射/H5V3M接收模块 STC89C52RC驱动S315MHZ收发模块 串口显示
STM32F103C8T6 晶振8M/系统时钟72M H34C发射/H5V3M接收模块 STM32F103C8T6驱动315MHZ收发模块 串口显示

二、基本参数

参数

H34C发射模块
K_A31_002 基于STM32等单片机驱动315MHZ收发模块 串口显示_第3张图片

H5V3M接收模块

K_A31_002 基于STM32等单片机驱动315MHZ收发模块 串口显示_第4张图片

引脚说明

H34C发射模块 引脚说明
VCC(+) 正极 3.3/5V供电
GND(-) 负极 接GND
DAT 数据输出引脚
H5V3M接收模块 引脚说明
VCC(+) 正极5V供电
GND(-) 负极 接GND
DAT 数据输入引脚

三、驱动说明

原理:

发射模块发送高低电平 接收端输出与输入同样的高低电平 发送与解析协议可以自定义 用一定高低电平时间来表示状态0 和 1

对应程序:

以51为例

void Delay359us(void)		//@11.0592MHz
{
	uint8_t i;

	_nop_();
	i = 162;
	while (--i);
}

void Delay1078us(void)		//@11.0592MHz
{
	uint8_t i, j;

	_nop_();
	i = 2;
	j = 235;
	do
	{
		while (--j);
	} while (--i);
}

void Start(void)
{
		Send=0;
		Delay1078us();	  //1078US
		Delay1078us();	  //1078US
		Delay1078us();	  //1078US
		Delay1078us();	  //1078US
//		Send=1;
//		Delay1078us();	  //1078US
//		Delay1078us();	  //1078US
//		Send=0;	
//		Delay1078us();	  //1078US
//		Delay1078us();	  //1078US
}

//数据0

void Dat_0(void)
{
		Send=1;
		Delay359us();		//359US
		Send=0;
		Delay1078us();	  //1078US
}
//数据1

void Dat_1(void)
{
		Send=1;
		Delay1078us();		//1078US
		Send=0;
		Delay359us();	  //359US
					
															
}
//发送一个字节数据		

void Send_Byte(uint8_t Dat)
{
	uint8_t i,buf=0;
	Start();
	for(i=0;i<8;i++)
	{
			buf=Dat>>7;
			if(buf)
			{
				Dat_1();
			}
			else
			{
				Dat_0();
			}
			Dat=Dat<<1;
	}
	Send=0;
}
//发送字符串

void Send_String(uint8_t *Pdat)
{
	uint8_t i=0;
	Start();
	while(Pdat[i]!='\0')
	{

		Send_Byte(*(Pdat+i));
		
		i++;
	}

}




//接收:

void Delay100us(void)		//@11.0592MHz
{
	uint8_t i;

	_nop_();
	i = 43;
	while (--i);
}
void Delay500ms(void)		//@11.0592MHz
{
	uint8_t i, j, k;

	_nop_();
	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


/*****************************************************************************
解码
开始信号5MS低电平
1.2MS高0.4MS低为1
1.2MS低0.4MS高为0
*********************************************************************************/
uint8_t Decode(void)//
{
	uint8_t m,R_date;
	while(!DAT)
	{
		times++;
		Delay100us();
	}
	if(times>=30)
	{
			Flag_State=1;
			times=0;
		//SeriPushSend('1')	;	 
	}
	
	if(Flag_State)
	{
		for(m=0;m<8;m++)
		{
				while(!DAT);
				while(DAT)
				{
					times++;
					Delay100us();
				}
				if(times>=10)
				{
						while(DAT);
						R_date<<=1;
						R_date|=0x01;
						times=0;
//						OUT1=1;
//						SeriPushSend('1')	;	 
						
				}
				else
				{
						R_date=R_date<<1;
						times=0;
//						SeriPushSend('0')	;	
//						OUT1=0;
				}

		}
		Flag_State=0;
		return R_date;
		
	}
	else
	{
			times=0;
		
	}

	
}

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+315MHZ收发模块

//STC89C52RC+H5V3M(315MHZ)接收模块
sbit DAT =P0^0;
//STC89C52RC+H34C(315MHZ)发射模块
sbit Send =P1^0;


1.2、STM32F103C8T6+315MHZ收发模块

//STM32F103C8T6+H5V3M(315MHZ)接收模块
#define    H34C_GPIO_CLK                  RCC_APB2Periph_GPIOA  
#define    H34C_PORT                      GPIOA
#define    H34C_PIN                       GPIO_Pin_0
//STM32F103C8T6+H34C(315MHZ)发射模块
#define    H34C_GPIO_CLK                  RCC_APB2Periph_GPIOA  
#define    H34C_PORT                      GPIOA
#define    H34C_PIN                       GPIO_Pin_0

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
资料获取 ( 滑到最后添加个人号)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

//H34C(315MHZ)发射
/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : H34C(315MHZ)模块测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线
H34C(315MHZ)模块-----------------------STC89C52RC
VCC------------------------------------3.3V
GND------------------------------------GND
DAT------------------------------------P1.0

*************************************************************************************/
//H5V3M(315MHZ)接收
/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : H5V3M(315MHZ)模块测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线
H5V3M(315MHZ)模块-----------------------STC89C52RC
VCC------------------------------------3.3V
GND------------------------------------GND
DAT------------------------------------P0.0

*************************************************************************************/

STM32F103C8T6

//H34C(315MHZ)发射
/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : H34C(315MHZ)模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟 72M
接线
H34C(315MHZ)模块------------------------STM32F103C8T6
VCC-------------------------------------3.3V
GND-------------------------------------GND
DAT-------------------------------------PA_0 

*****************************************************************************************/
//H5V3M(315MHZ)接收
/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : H5V3M(315MHZ)模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟 72M
接线
H5V3M(315MHZ)模块------------------------STM32F103C8T6
VCC-------------------------------------5V
GND-------------------------------------GND
DAT-------------------------------------PA_0 

*****************************************************************************************/

你可能感兴趣的:(单片机,stm32,嵌入式硬件)