• 芯片制造中的阻挡层沉积技术介绍
  • 接地搭接电缆布局屏蔽!!!
  • 北美液冷生态解码:超微spuermicro,24年营
  • SK海力士全球首发HBM4-16层堆叠、2.0TB/s
  • 2纳米Nanosheet技术及其以后的选择性层减薄

STM32 超声波测距

[复制链接]
查看1313 | 回复22 | 2020-11-23 08:43:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
STM32 超声波测距

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "timer.h"
#include "usart.h"
extern u8 TIM2CH1_CAPTURE_STA; //输入捕获状态
extern u16 TIM2CH1_CAPTURE_VAL;//输入捕获值
int main(void)
{
        short Distance;   
    u32 temp=0;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置 NVIC 中断分组 2:2 位抢占优先级, 2 位响应优先级
    delay_init(); //延时函数初始化
    uart_init(115200); //串口初始化为 9600
    LED_Init(); //初始化与 LED 连接的硬件接口
//    TIM1_PWM_Init(899,0); //不分频。 PWM 频率=72000/(899+1)=80Khz
    TIM2_Cap_Init(0XFFFF,72-1); //以 1Mhz 的频率计数
    while(1)
{
    SEND10US=0;
    delay_ms(100);
    SEND10US=1;
    delay_us(100);
    SEND10US=0;
//    TIM_SetCompare1(TIM1,TIM_GetCapture1(TIM1)+1);
   
        if(TIM_GetCapture1(TIM1)==300)TIM_SetCompare1(TIM1,0);
            if(TIM2CH1_CAPTURE_STA&0X80)//成功捕获到了一次高电平
            {
                temp=TIM2CH1_CAPTURE_STA&0X3F;
                temp*=65536; //溢出时间总和
                temp+=TIM2CH1_CAPTURE_VAL; //得到总的高电平时间

                TIM2CH1_CAPTURE_STA=0; //开启下一次捕获
               
             }
                    Distance =(temp*340/200)/100; //测量距离单位cm
                     printf(" %d cm\r\n",Distance);


}
}
回复

使用道具 举报

h_yun | 2020-11-23 08:50:44 | 显示全部楼层
回复

使用道具 举报

wangyitu | 2020-11-23 08:50:51 | 显示全部楼层
看这个引入的头包像是c语言写的啊~
回复

使用道具 举报

arychen | 2020-11-23 08:51:23 | 显示全部楼层
回复

使用道具 举报

清心如水 | 2020-11-23 08:52:18 | 显示全部楼层
回复

使用道具 举报

heming2216 | 2020-11-23 08:57:54 | 显示全部楼层
回复

使用道具 举报

bidinghong | 2020-11-23 08:57:57 | 显示全部楼层
回复

使用道具 举报

tian_000 | 2020-11-23 10:15:00 | 显示全部楼层
看着不是很复杂的样子
回复

使用道具 举报

bidezhi7777 | 2020-11-23 12:38:53 | 显示全部楼层
回复

使用道具 举报

luchonghui74 | 2020-11-23 15:36:42 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则