找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2559|回复: 1
打印 上一主题 下一主题
收起左侧

STM32超声波避障车源程序

[复制链接]
跳转到指定楼层
楼主
ID:253933 发表于 2020-3-9 19:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32  通过超声波测距,自动避障小车

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "usart2.h"
  6. #include "control.h"
  7. #include "beep.h"
  8. #include "timer.h"

  9. /******************************************************
  10.   @title                             32避障车
  11.         @author                            王
  12.         @since                            Keil uVision5
  13.         @version                    1.0
  14.         @remark                            超声波避障
  15.   @crystal frequency   
  16.         @time                 20181109
  17.   @site                 6J314
  18. ******************************************************/


  19. extern u8  TIM2CH1_CAPTURE_STA;                //输入捕获状态                                                   
  20. extern u16        TIM2CH1_CAPTURE_VAL;        //输入捕获值
  21. float distance;
  22. /**函数声明**/
  23. void Check_Data(void);

  24. /**变量声明**/
  25. //int CONNECTED=0;//串口2接收数据标志位
  26. //extern int Max_Temp;//上限设定温度值缓存
  27. //extern int Min_Temp;//下限设定温度值缓存
  28. //extern int Tempreture;//HIMI回传温度值缓存
  29. //extern int cnt;//定时器累加变量200ms
  30. //extern int cnt1;//定时器累加变量500ms

  31. /**系统功能初始化函数**/
  32. void SYS_Init(void)
  33. {
  34.                  
  35.   
  36.         delay_init();                     //延时函数初始化        
  37.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
  38.         uart_init(9600);                  //串口初始化为9600
  39.         LED_Init();                                   //初始化与LED连接的硬件接口
  40. //        BEEP_Init();                                 //蜂鸣器初始化
  41.         Triger_Inic();                         //继电器触发外设初始化
  42.         uart_init(9600);                                 //9600         

  43. //  USART2_Init(9600);         //串口二初始化
  44. //TIM4_Config(1999,71,1,0);
  45.                 TIM1_PWM_Init(899,0);                         //不分频。PWM频率=72000/(899+1)=80Khz
  46.          TIM2_Cap_Init(0XFFFF,72-1);                //以1Mhz的频率计数
  47.          TIM3_PWM_Init(999,0);         //不分频。PWM频率=72000000/1000=72Khz

  48. }

  49. /**主函数**/
  50. int main(void)
  51. {        
  52.          u32 temp=0;
  53.         SYS_Init();
  54.                    while(1)
  55.         {
  56.          delay_ms(10);
  57.                 Wave_SRD_Strat();
  58. //                TIM_SetCompare1(TIM1,TIM_GetCapture1(TIM1)+1);
  59. //                if(TIM_GetCapture1(TIM1)==300)TIM_SetCompare1(TIM1,0);                 
  60.                 if(TIM2CH1_CAPTURE_STA&0X80)//成功捕获到了一次高电平
  61.                 {
  62.                         temp=TIM2CH1_CAPTURE_STA&0X3F;
  63.                         temp*=65536;                                        //溢出时间总和
  64.                         temp+=TIM2CH1_CAPTURE_VAL;                //得到总的高电平时间
  65.                         distance = temp/59.0;
  66.                         printf("n0.val=");
  67.             while((USART1->SR&0X40)==0);//等待发送结束
  68.                         printf("%.0f",distance);        //打印总的高点平时间  
  69.                         while((USART1->SR&0X40)==0);//等待发送结束
  70.                         USART1->DR=0xff;
  71.                         while((USART1->SR&0X40)==0);//等待发送结束
  72.                         USART1->DR=0xff;
  73.                         while((USART1->SR&0X40)==0);//等待发送结束
  74.                         USART1->DR=0xff;
  75.                         LED1=!LED1;
  76.                          TIM2CH1_CAPTURE_STA=0;                        //开启下一次捕获
  77.                         




  78.                  }
  79.         }
  80. }
复制代码

所有资料51hei提供下载:
2~~超声波避障车.7z (842.84 KB, 下载次数: 44)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2020-3-12 23:32 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表