找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3726|回复: 4
收起左侧

STM32超声波测距程序与资料

[复制链接]
ID:355082 发表于 2018-11-14 09:23 | 显示全部楼层 |阅读模式
单片机源程序如下:
  1. #include"stm32f10x.h"
  2. #include"SysTick.h"
  3. #include"TFT_Drive.h"
  4. #include"GUI.h"
  5. #include"Uitr.h"
  6. #include"Time.h"


  7. void Count(void);
  8. void LED_GPIO_Config(void);

  9. uint32_t Distance;
  10. uint16_t Time;
  11. uint8_t ShowData[5]={0,0,0,0,0};
  12. int main(void)                        
  13. {

  14.         TFT_Init();
  15.         Uitr_GPIO_Config();
  16.         LED_GPIO_Config();         
  17.         GUI_ClearScreen(BLACK);
  18.          GUI_WriteCHAR(60,55,"www点prechin点com",RED,BLACK);
  19.           GUI_WriteCNChar(56,26,"普中科技",RED,BLACK);
  20.         GUI_WriteCHAR(0,300,"Distance:",RED,BLACK);
  21.           TIM4_Config();
  22.           TIM3_Config();
  23.         while(1)
  24.         {
  25.                 while(ECHO_IN != 1);
  26.                 TIM_Cmd(TIM4,ENABLE);                                                  //计数器开始计数
  27.                 while(ECHO_IN == 1);
  28.                 TIM_Cmd(TIM4,DISABLE);                                                  //计数器停止计数
  29.                 Count();                                                                          //计算距离

  30.         }                        
  31. }

  32. void Count(void)
  33. {
  34.         Time = TIM4->CNT;                                                                  //读计数器值
  35.         TIM4->CNT = 0;                                                                          //清除计数器
  36.         if(Time>23530)                                                                          //判断是否在4M范围,超出显示ERRO
  37.         {
  38.                 GUI_WriteCHAR(72,300,"erro",RED,BLACK);
  39.         }
  40.         else
  41.         {
  42.                 Distance = (uint32_t)(Time*340/2/1000) ;          //计算出来的是MM               
  43.                 ShowData[0]        = (Distance%10000/1000)+'0';
  44.                 ShowData[1]        = (Distance%1000/100)+'0';
  45.                 ShowData[2]        = (Distance%100/10)+'0';
  46.                 ShowData[3]        = (Distance%10/1)+'0';

  47.                 GUI_WriteCHAR(72,300,ShowData,RED,BLACK);          //显示距离值
  48.         }
  49.         
  50. }
复制代码

所有资料51hei提供下载:

HC-SR04超声波_原理图.pdf

44.21 KB, 下载次数: 64, 下载积分: 黑币 -5

HC-SR04超声波测距模块说明书.pdf

427.76 KB, 下载次数: 41, 下载积分: 黑币 -5

STM32超声波测距.rar

420.62 KB, 下载次数: 170, 下载积分: 黑币 -5

超声波模块参考.pdf

1.02 MB, 下载次数: 48, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:305372 发表于 2019-1-7 12:48 | 显示全部楼层

。。。。。。
回复

使用道具 举报

ID:489605 发表于 2019-4-2 21:34 | 显示全部楼层
51程序有没有,感觉最近弄51比较恼火
回复

使用道具 举报

ID:598184 发表于 2019-8-9 09:42 | 显示全部楼层
好,很好
回复

使用道具 举报

ID:555399 发表于 2020-1-4 15:11 | 显示全部楼层
不能显示
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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