单片机代码搬运工

单片机代码搬运工

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

所有资源导航

其他资料目录 直戳跳转

一、资源说明

二、基本参数

参数

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

H5V3M接收模块

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

引脚说明

三、驱动说明

原理:

发射模块发送高低电平 接收端输出与输入同样的高低电平 发送与解析协议可以自定义 用一定高低电平时间来表示状态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 

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

04-20 17:09