14-基于stm32单片机毫米波雷达测距报警系统源程序、原理图、元器件清单实物制作

功能介绍:采用stm32单片机作为主控CPU,采用LD303-24G雷达模块来进行测量距离,OLED显示屏显示测量距离和报警距离,可以通过按键设置报警值,当测量值低于设置值,蜂鸣器则产生报警,如果高于设置值,蜂鸣器停止报警,文末有资料分享:

14-基于stm32单片机毫米波雷达测距报警系统(程序+原理图+元器件清单全套资料)

程序部分展示,有中文注释,新手容易看懂

u16  hextoDec(u8 hex)
    {
 u16 sum=0,mul=1;
 int i,r;
 int count=0;
 do{
  r=hex%16;
  for(i=0;i<count;i++)
        mul*=16;
        mul*=r;
        sum+=mul;
        mul=1;
        count++; 
 }while(hex/=16);
 return sum;
}

 int main(void)
 {	
	 u8 time[15];
	 u16 nian,buf1=30;
	 u8 key;u8 Res;
	 SystemInit(); 			 //系统时钟初始化为72M	  SYSCLK_FREQ_72MHz
	 delay_init();
	 TIM4_PWM_Init(7199,0);  //初始化PWM
	 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2	  
	uart_init(115200);	 	//串口初始化为9600  	
   ZYSTM32_brake(500);
	 OLED_Init();
	OLED_ColorTurn(0);//0正常显示,1 反色显示
  OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
	OLED_Clear();  	
	 OLED_ShowString(100,8,"CM",24,1);OLED_ShowString(10,8,"JL=",24,1);
	 OLED_ShowString(100,32,"CM",24,1);OLED_ShowString(10,32,"YZ=",24,1);
	 OLED_Refresh();	
	 KEY_Init();
	 	delay_ms(100);	 
		LED_Init();	 
	 led1=1;
	 
	 while(1)
		{  
			if(KEY0==0)//按键设置+
			{
			buf1++;
			}
			if(KEY1==0)//按键设置-
			{
			buf1--;
			if(buf1<1) buf1=1;
			}
			
				if(buf[3]=0xD3)//读到标志位
				{
			nian=hextoDec(buf[5]);//获取距离值
				}
				if(nian<buf1) led1=~led1;//距离小于设置值 闪缩报警
				else led1=1;             //否则 停止闪烁报警
				OLED_ShowNum(56,8,nian,3,24,1);//显示距离
				OLED_ShowNum(56,32,buf1,3,24,1);//显示设置值
				OLED_Refresh();	

		}
 }

 下面是原理图文件展示:

百度云盘资料分享链接

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值