找回密码
 立即注册

QQ登录

只需一步,快速开始

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

stm32超声波测距源程序 串口打印出数据

[复制链接]
跳转到指定楼层
楼主
ID:253933 发表于 2019-10-4 21:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  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.         @since                            Keil uVision5
  12.         @version                    1.0
  13.         @remark                            超声波测距报警器
  14.   @crystal frequency   
  15.         @time                 20181229
  16.   @site                 6J313
  17. ******************************************************/


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

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

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

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

  47. }

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




  80.                 }
  81.         }
  82. }
复制代码

所有资料51hei提供下载:
超声波测距报警器.7z (426.23 KB, 下载次数: 59)



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

使用道具 举报

沙发
ID:611378 发表于 2019-10-19 09:34 | 只看该作者
不知道为啥不好使,感谢分享但是
回复

使用道具 举报

板凳
ID:430308 发表于 2019-11-22 23:43 | 只看该作者
多谢正好要用到
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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