一款串口超声波模块使用心得——附带32程序

前段时间在某宝上看到一款串口超声波模块,感觉很新奇,看看介绍更是激动人心。随即买了四个。但是商家没有附带调试例程,收货后便搁置了。
如下便是该模块的渲染图与实物图。
一款串口超声波模块使用心得——附带32程序_第1张图片一款串口超声波模块使用心得——附带32程序_第2张图片
嗯…不得不说渲染的挺好的…
下面是模块的一些介绍
工作原理
本超声波测距模块可提供0mm–2000mm的非接触式距离感测功能,包括超声波发射器、接收器与控制电路。其基本工作原理为此超声波测距模块连接电源后,模块本身每18ms进行一次测距,完成测距后,以串口(TTL电平,用USB转串口线可以直接连接本模块到PC,PC上程序读取串口数据就可以了,非常容易)的形式输出距离值。

数据格式
模块每次输出4个字节(有数据才输出),格式为:0XFF+H_DATA+L_DATA+SUM

  1.  0XFF: 为一组开始数据,用于判断。
    
  2.  H_DATA:距离数据的高8位。
    
  3.  L_DATA:距离数据的低8位。
    
  4.  SUM:   数据和,用于效验。其0XFF+H_DATA+L_DATA=SUM(仅低8位)
    

注:H_DATA与L_DATA合成16位数据,即以毫米为单位的距离值。
H_DATA * 256 +L_DATA
电气参数:
电气参数 超声波模块
工作电压 DC 3.0-5.5V
工作电流 8mA
工作频率 40KHz
测距范围 0mm- 2000mm
分辨率 1mm
测量角度 与距离相关,下见角度图
串口波特率 9600,8,n,1
响应周期 18ms
规格尺寸 331715mm(超微型)
还有一些看上去超NB的有板有眼的“科学分析”说这个模块怎么怎么好这里就不一一列举了下面直接上程序
32的串口接收程序:

void USART1_IRQHandler(void)
{
	static uint8_t i=0,rebuf[4]={0};
	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//判断接收标志
	{
		rebuf[i++]=USART_ReceiveData(USART1);//读取串口数据,同时清接收标志
		USART_SendData(USART1 ,rebuf[i-1] ); 
		if (rebuf[0]!=0xFF)//帧头不对
			 i=0;					          
		if(i==4)//i等于4时,接收完毕
		{		
			GPIO_SetBits(GPIOA,GPIO_Pin_1);	 //PA8 输出高
			memcpy(distance_data,rebuf,4);//拷贝接收到的数据
			Receive_ok=1;//接收完成标志	
			i=0;//缓存清0
		}
	}
		
}
int main(void)
 {	 
		u8 i;
		u16 distance=0;
		RCC_Configuration(); 			//时钟设置 
		NVIC_Configuration(); 	  //设置NVIC中断分组2:2位抢占优先级,2位响应优先级		
		LED_Init();	 
		Lcd_Init();	 //1.8寸液晶屏--初始化配置
		Lcd_Clear(BLACK);//清屏	
		Usart_Int(9600);
		Gui_DrawFont_GBK24(0,2,BLUE,BLACK,"串口超声波"); 
	 while(1)
	 {
	  GPIO_ResetBits(GPIOA,GPIO_Pin_1);
		while(!Receive_ok && i<22)
			{
				i++;
				delay_us(1000);
			}	
     Receive_ok=0;
		if(distance_data[1]==0xaa && distance_data[2]==0xaa)	
		{
			Gui_DrawFont_GBK16(10,30,BLUE,BLACK,"F");	//千
		  Gui_DrawFont_GBK16(22,30,BLUE,BLACK,"F");//百
		  Gui_DrawFont_GBK16(34,30,BLUE,BLACK,"F");//十
		  Gui_DrawFont_GBK16(54,30,BLUE,BLACK,"F");//个
		}
		else 
		{
			distance=distance_data[1]*256+distance_data[2]+8;
		 Gui_DrawFont_Num16(10,30,BLUE,BLACK,distance/1000);	//千
		 Gui_DrawFont_Num16(22,30,BLUE,BLACK,distance%1000/100);//百
		 Gui_DrawFont_Num16(34,30,BLUE,BLACK,distance%100/10);//十
		 Gui_DrawFont_GBK16(44,30,BLUE,BLACK,"."); 
		 Gui_DrawFont_Num16(54,30,BLUE,BLACK,distance%10);//个
		 Gui_DrawFont_GBK16(66,30,BLUE,BLACK,"CM"); 
		}			
		 delay_ms(100);			
	 } 		 
}

全部工程稍后附件上传
https://download.csdn.net/download/qq_43786163/11590358
或者搜索串口超声波到下载页面进行下载

你可能感兴趣的:(一款串口超声波模块使用心得——附带32程序)