日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]stm32—超聲波傳感器

一、簡介

檢測物體距離,提供 2cm-400cm 的非接觸式距離感測功能,測距精度可達(dá)高到 3mm;

小于2cm會不正常輸出

測試距離=(高電平時(shí)間聲速(340M/S))/2 。

4.測距離公式: uS/58=厘米或者 uS/148=英寸; 或是: 距離=高電平時(shí)間聲速( 340M/S) /2; 建議測

量周期為 60ms 以上, 以防止發(fā)射信號對回響信號的影響

二、工作過程

Trig置高 10uS 以上,該模塊內(nèi)部將發(fā)出 8 個(gè) 40kHz 周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號。 回響信號的脈沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號時(shí)間間隔可以計(jì)算得到距離。公式:uS/58=厘米或者 uS/148=英寸;或是:距離= 高電平時(shí)間*聲速(340M/S)/2;

三、連接

Vcc:接5V電壓

GND:接地

Trig:觸發(fā)控制信號輸入,給最少 10us 的高電平信呈 接PD5

Echo:信號輸出,PD3。

四、代碼

在dist.h中對引腳進(jìn)行宏定義,方便移植

#define dist_Echo_PORT GPIOD

#define dist_Trig_PORT GPIOD

#define dist_Echo_PIN GPIO_Pin_3

#define dist_Trig_Pin GPIO_Pin_5

#define dist_Echo_RCC RCC_APB2Periph_GPIOD

#define dist_Trig_RCC RCC_APB2Periph_GPIOD

在dist.c中對引腳進(jìn)行初始化

//對超聲波傳感器的端口進(jìn)行初始化

void dist_INIT(void)

{

GPIO_InitTypeDef GPIO_InitStructure;//定義結(jié)構(gòu)體變量

RCC_APB2PeriphClockCmd(dist_Echo_RCC|dist_Trig_RCC,ENABLE);//開啟時(shí)鐘

GPIO_InitStructure.GPIO_Pin=dist_Echo_PIN; //選擇你要設(shè)置的IO口

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //設(shè)置浮空輸入

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //設(shè)置傳輸速率

GPIO_Init(dist_Echo_PORT,&GPIO_InitStructure); /* 初始化GPIO */

GPIO_InitStructure.GPIO_Pin=dist_Trig_Pin; //選擇你要設(shè)置的IO口

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //設(shè)置推挽輸出

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //設(shè)置傳輸速率

GPIO_Init(dist_Trig_PORT,&GPIO_InitStructure); /* 初始化GPIO */

}

因?yàn)樾枰l(fā)送—接收使用的是定時(shí)器的計(jì)時(shí)功能,所以需要對定時(shí)器進(jìn)行初始化

void TIM4_Init(void)

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//使能TIM4時(shí)鐘

TIM_TimeBaseInitStructure.TIM_Prescaler = 0;

TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInitStructure.TIM_Period = 0xffff;

TIM_TimeBaseInitStructure.TIM_ClockDivision = 0;

TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);

TIM_PrescalerConfig(TIM4,71, TIM_PSCReloadMode_Immediate);

TIM_ARRPreloadConfig(TIM4,DISABLE);

TIM_SetCounter(TIM4,0); //TIM4計(jì)數(shù)值清零

TIM_Cmd(TIM4,DISABLE); //TIM4計(jì)數(shù)器失能

}

根據(jù)定時(shí)器的值,來確定離物體的距離

int GetDistance(void)

{

int dis;

int count;

GPIO_ResetBits(dist_Echo_PORT,dist_Echo_PIN); //echo端口復(fù)位

GPIO_ResetBits(dist_Trig_PORT,dist_Trig_Pin); //trig端口復(fù)位

TIM_SetCounter(TIM4,0); //TIM4計(jì)數(shù)值清零

GPIO_SetBits(dist_Trig_PORT,dist_Trig_Pin); //trig置高 發(fā)出10us的高電平信號

delay_nus(10);

GPIO_ResetBits(dist_Trig_PORT,dist_Trig_Pin);

delay_nus(100);

while(GPIO_ReadInputDataBit(dist_Echo_PORT, dist_Echo_PIN) == 0);

TIM_Cmd(TIM4,ENABLE); //開啟計(jì)數(shù)器

//開啟定時(shí)器開始計(jì)時(shí)

while(GPIO_ReadInputDataBit(dist_Echo_PORT, dist_Echo_PIN)); //等待echo置低

TIM_Cmd(TIM4,DISABLE); //關(guān)閉計(jì)數(shù)器

count = TIM_GetCounter(TIM4);//獲取計(jì)數(shù)器值

dis = (int)count/60.034;//轉(zhuǎn)換為距離,即29.034us超聲波能傳播1cm

return dis;

}

最后在main函數(shù)里面可以用串口打印查看

int main()

{

int dist=0;

SysTick_Init(72);

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷優(yōu)先級分組 分2組

LED_Init();

USART1_Init(115200);

dist_INIT();

TIM4_Init();

while(1)

{

dist=GetDistance();

printf("距離為:%d\n",dist);

delay_ms(1000);

}

}

問題:之前做智能小車比賽的時(shí)候都是用這個(gè)代碼,沒有什么問題,換了個(gè)板子就不行了,下學(xué)期上課再研究

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

STM32 圖像處理函式庫STM32IPL是由 C 語言所編寫的開放原始碼軟件函式庫,提供了圖像處理和計(jì)算機(jī)視覺功能,能加快在意法半導(dǎo)體(ST)的STM32 微控制器上開發(fā)視覺分析的應(yīng)用。本產(chǎn)品在最新版 (v3.1.0)...

關(guān)鍵字: 意法半導(dǎo)體 STM32

串口作為單片機(jī)開發(fā)的一個(gè)常用的外設(shè),應(yīng)用范圍非常廣。大部分時(shí)候,串口需要接收處理的數(shù)據(jù)長度是不定的。那么怎么才能判斷一幀數(shù)據(jù)是否結(jié)束呢,今天就以STM32單片機(jī)為例,介紹幾種接收不定長數(shù)據(jù)的方法。

關(guān)鍵字: 單片機(jī) 串口 STM32

脈沖寬度調(diào)制(PWM) 是一種數(shù)字信號,最常用于控制電路。該信號在預(yù)定義的時(shí)間和速度中設(shè)置為高(5v或3.3v)和低(0v)。通常,我們將PWM的高電平稱為1,低電平為0。

關(guān)鍵字: STM32 PWM 控制

摘要:隨著計(jì)算機(jī)技術(shù)與電子科技的快速發(fā)展,人工智能、云計(jì)算等技術(shù)的不斷進(jìn)步,智能家居新型產(chǎn)業(yè)模式也得到了巨大的發(fā)展,至今國內(nèi)智能家居市場投資達(dá)到了2396億元,市場規(guī)模占比不斷增大,未來十年內(nèi)家居智能化將實(shí)現(xiàn)大規(guī)模應(yīng)用。...

關(guān)鍵字: STM32 嵌入式 人工智能

?GD32作為國產(chǎn)MCU里的佼佼者,產(chǎn)品線也比較豐富,是替代STM32的一個(gè)很好的選擇。前段時(shí)間有個(gè)項(xiàng)目用到GD32的單片機(jī),今天來說說使用的一些體會。

關(guān)鍵字: 國產(chǎn)MCU STM32 單片機(jī)

STM32 用戶界面設(shè)計(jì)環(huán)境新增屏幕旋轉(zhuǎn)和紋理映射功能,支持性能強(qiáng)大的Neochrom圖形加速器

關(guān)鍵字: 意法半導(dǎo)體 STM32 MCU

意法半導(dǎo)體(ST)發(fā)布了STM32Cube.AIversion7.2.0,這是微控制器廠商推出的首款支持超高效深度量化神經(jīng)網(wǎng)絡(luò)的人工智能(AI)開發(fā)工具。

關(guān)鍵字: 意法半導(dǎo)體 STM32

2022年是意法半導(dǎo)體STM32家族問世15周年。在全球疫情阻止人們面對面溝通交流的當(dāng)下,7月18-22日,意法半導(dǎo)體舉辦首屆暨2022年STM32中國線上技術(shù)周,慶祝與生態(tài)合作伙伴共同創(chuàng)新的十五載。 在這個(gè)為期五天的線...

關(guān)鍵字: 意法半導(dǎo)體 STM32

展示與STM32生態(tài)伙伴的十五年創(chuàng)新成就

關(guān)鍵字: 意法半導(dǎo)體 STM32

摘要:根據(jù)四旋翼飛行器工作原理,以STM32控制器為基礎(chǔ),對四旋翼飛行器飛行控制系統(tǒng)的軟硬件設(shè)計(jì)進(jìn)行了分析,可有效調(diào)整四旋翼飛行器飛行姿態(tài)與飛行位置,實(shí)現(xiàn)了控制模塊與地面站的有效聯(lián)系。

關(guān)鍵字: STM32 控制系統(tǒng) 軟件設(shè)計(jì)

技術(shù)前線

2279 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉