欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于stm32f4的超聲波測距代碼
[打印本頁]
作者:
sabo1655
時間:
2022-3-31 20:50
標題:
基于stm32f4的超聲波測距代碼
通過使用定時器的計數來實現HCSR04超聲波模塊測距的功能。
單片機源程序如下:
#include "timer.h"
#include "hc.h"
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "stdio.h"
//PA9為模塊trig引腳接口
//PA10為Echo引腳接口
int main(void)
{
static u8 time;//單程運行時間,單位s
static u8 length;//路程,單位m
uart_init(115200); //串口初始化波特率為115200
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
delay_init(168); //初始化延時函數
while(1)
{
TIM3_Int_Init(100-1,16800-1); //初始化TIM3定時器,計數周期為0.02s
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //溢出中斷
{
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)==1);//echo為高電平時,則等待至低電平,才啟動超聲波
GPIO_SetBits(GPIOA,GPIO_Pin_9); //TRIG置高
delay_us(20);
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10) == 0)//等待echo的高電平到來
TIM_SetCounter(TIM2,0); //清零計數器
TIM_Cmd(TIM3, ENABLE); //使能定時器3,開始計數
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10) == 1);//等待echo的高電平結束
TIM_Cmd(TIM3, DISABLE); //失能定時器3,截止計數
TIM_GetCounter(TIM2);//得到計數器的值
time=TIM_GetCounter(TIM2)/20000;//單程時間
length=time*344;//計算出長度
printf("\r\n當前距離為:\r\n");
}
}
復制代碼
Keil代碼下載:
代碼.7z
(314.21 KB, 下載次數: 29)
2022-4-1 02:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1