找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2319|回复: 2
收起左侧

STM32F4超声波测距程序

[复制链接]
ID:632323 发表于 2019-11-19 17:56 | 显示全部楼层 |阅读模式
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "timer.h"
  5. #include "lcd.h"


  6. extern u8  TIM5CH1_CAPTURE_STA;                //输入捕获状态                                                   
  7. extern u32        TIM5CH1_CAPTURE_VAL;        //输入捕获值  
  8.   
  9.        
  10. //超声波函数引脚初始化
  11.        
  12.         void ChaoShengBo_Init(void)
  13. {             
  14.   GPIO_InitTypeDef  GPIO_InitStructure;

  15.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟

  16.   //GPIOF9,F10初始化设置
  17.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  18.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  19.   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  20.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  21.   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  22.   GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化
  23.        
  24.         GPIO_ResetBits(GPIOF,GPIO_Pin_10);//GPIOF9,F10设置高,灯灭

  25. }
  26.        
  27.        
  28.        
  29.        
  30.        
  31.        
  32. int main(void)
  33. {
  34.         u8 key;           //保存键值
  35.         long long High_TIME=0,distance=0;  
  36.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  37.         delay_init(168);  //初始化延时函数
  38.         uart_init(115200);//初始化串口波特率为115200
  39.         ChaoShengBo_Init();
  40.         LCD_Init();           //初始化LCD FSMC接口   
  41.         TIM5_CH1_Cap_Init(0XFFFFFFFF,84-1); //以1Mhz的频率计数

  42.            while(1)
  43.         {
  44.                         delay_ms(100);
  45.                         GPIO_SetBits(GPIOF,GPIO_Pin_10);
  46.                         delay_ms(1);
  47.                         GPIO_ResetBits(GPIOF,GPIO_Pin_10);  // 给超声波一个高电平
  48.                 if(TIM5CH1_CAPTURE_STA&0X80)        //成功捕获到了一次高电平
  49.                 {
  50.                         High_TIME=TIM5CH1_CAPTURE_STA&0X3F;
  51.                         High_TIME*=0XFFFFFFFF;                                          //溢出时间总和
  52.                         High_TIME+=TIM5CH1_CAPTURE_VAL;                   //得到总的高电平时间 单位us
  53.                         distance=High_TIME*340/2/10000;            //单位cm
  54.                         LCD_ShowString(30,40,210,24,24,"High_TIME:");       
  55.                   LCD_ShowString(30,70,210,24,24,"distance:");
  56.                         LCD_ShowxNum(90,40,High_TIME,15,24,0);       
  57.                         LCD_ShowxNum(150,70,distance,20,24,0);         
  58.                         TIM5CH1_CAPTURE_STA=0;                             //开启下一次捕获
  59.                 }
  60.         }
  61. }
复制代码

全部资料51hei下载地址:
点阵.7z (1.52 MB, 下载次数: 39)
回复

使用道具 举报

ID:643525 发表于 2019-12-24 19:55 | 显示全部楼层
这个程序   我觉得你这个不对啊    还有你下面那个文件是骗坛友吗
回复

使用道具 举报

ID:213884 发表于 2020-4-14 10:26 | 显示全部楼层
2289477193 发表于 2019-12-24 19:55
这个程序   我觉得你这个不对啊    还有你下面那个文件是骗坛友吗

自信一点,把“觉得”去掉,他的程序确实不对
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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