日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32f429+超声波传感器HC-SR04 -- 测距

發布時間:2024/1/1 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32f429+超声波传感器HC-SR04 -- 测距 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

工具

1. 開發板stm32f429(f4系列的應該都可以)

2. 超聲波傳感器,型號為HC-SR04

HC-SR04接線HC-SR04stm32f4
VCCVCC(5V)
GNDGND
Trig推挽普通輸出模式
Echo上拉輸入,需開啟外部中斷

代碼實現邏輯:

1. 配置定時器TIM4用于計算Echo高電平信號的時長

void TIM4_Init(u16 arr,u16 psc) // TIM4 rewrite {TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //定時器參數初始化//初始化定時器RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); //TIM4時鐘使能 TIM_TimeBaseStructure.TIM_Prescaler=psc; //定時器分頻TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上計數模式TIM_TimeBaseStructure.TIM_Period=arr; //自動重裝載值TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; //輸入捕獲會用到TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//初始化定時器4 }

2. 配置兩個IO給Trig和Echo
1)使能 IO 口時鐘,包括使能 SYSCFG 時鐘用于外部中斷
2)初始化Echo的 IO 口為上拉輸入,初始化Trig的 IO 口為上拉推挽普通輸出
3)設置 Echo的 IO 口與中斷線的映射關系,設置中斷線上升沿觸發中斷模式
4)配置中斷優先級分組(NVIC),并使能中斷
5)編寫中斷服務函數

void HCSR04_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); //使能PORTD時鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能 SYSCFG 時鐘,外部中斷// GPIO PD1 輸入GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;// PD1GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //輸入功能GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉GPIO_Init(GPIOD,&GPIO_InitStructure); //初始化IO口// GPIO PD0 推挽普通輸出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通輸出功能GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉GPIO_Init(GPIOD,&GPIO_InitStructure); //初始化IO口SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource1); // 配置 GPIO 與中斷線的映射關系: 將中斷線 1 與 GPIOD 映射起來,即GPIOD.1 與 EXTI1 中斷線連接//外部中斷配置EXTI_InitStructure.EXTI_Line=EXTI_Line1;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; //中斷EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising; //上升沿觸發EXTI_Init(&EXTI_InitStructure);//配置中斷分組(NVIC),并使能中斷NVIC_InitStructure.NVIC_IRQChannel=EXTI1_IRQn; //使能外部中斷通道 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能外部中斷通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02; //搶占優先級 2NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x02; //響應優先級 2NVIC_Init(&NVIC_InitStructure); }void EXTI1_IRQHandler(void) {delay_us(10);if(EXTI_GetITStatus(EXTI_Line1)!=RESET) //判斷中斷線1上的中斷是否發生(標志位是否置位){TIM_SetCounter(TIM4,0); TIM_Cmd(TIM4,ENABLE);while(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_1)); //等待PD1低電平 TIM_Cmd(TIM4,DISABLE);Distance=(TIM_GetCounter(TIM4)*340)/200.0;printf("Distance:%f cm\r\n",Distance); EXTI_ClearITPendingBit(EXTI_Line1); // 清除中斷線1的中斷標志位} }

3. 編寫函數:使能超聲波傳感器,測算距離一次

void HCSR04_Start(void) {GPIO_SetBits(GPIOD,GPIO_Pin_0); //將Trig設置為高電平delay_us(12); //持續大于10us觸發,觸發超聲波模塊工作GPIO_ResetBits(GPIOD,GPIO_Pin_0); }

4. 如何在main中調用

#include "sys.h" #include "delay.h" #include "usart.h" #include "timer.h" #include "hc_sr04.h"int main(void) {NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2delay_init(180); //初始化延時函數 USART1_init(9600);//初始化串口波特率為9600TIM4_Init(9998,7199); //定時器初始化HCSR04_GPIO_Init(); //超聲波傳感器初始化while(1){u8 i=0;while(i<10){delay_ms(100); // 超聲波工作周期建議在60ms以上,以防止發射信號對回響信號的影響i++;}HCSR04_Start(); // 使能超聲波傳感器,測算距離一次} }

聲明:

1. 代碼不完全,基于正點原子F4的項目文件編寫

2. 此文參照他人的分享(STM32學習筆記——HC—SR04(超聲波模塊)_精神小火君-CSDN博客_正點原子超聲波)/如若侵犯請聯系刪除

3. 以上代碼已在傳感器上經過驗證沒有問題

4. 項目文件上傳到github(GitHub - Liqing-Ye/stm32f4-HC-SR04: stm32f4+HC-SR04超聲波測距)

總結

以上是生活随笔為你收集整理的stm32f429+超声波传感器HC-SR04 -- 测距的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 私人影院毛片 | 自拍偷拍第五页 | 日韩av不卡在线播放 | 女性女同性aⅴ免费观女性恋 | 99re这里只有精品在线 | 亚洲av日韩av在线观看 | 人人看人人做 | 美脚の诱脚舐め脚视频播放 | 久久久久久成人精品 | 欧美午夜一区二区三区 | 少妇免费直播 | 国产中文字幕在线视频 | 久久久久久久偷拍 | 欧美比基尼| 精品人妻一区二区三区蜜桃视频 | 国产精品久久久久久久一区二区 | 3d动漫精品啪啪一区二区竹菊 | аⅴ资源天堂资源库在线 | 日韩欧美亚洲天堂 | 欧美又大粗又爽又黄大片视频 | 成人激情免费视频 | 美女黄视频在线观看 | 久久白虎| 久久精品一二区 | www.国产在线 | 日韩精品中文字幕在线 | 香蕉视频国产 | 中文天堂在线观看 | 久久婷婷热 | 欧美性受xxxxxx黑人xyx性爽 | 三日本三级少妇三级99 | 国产乱论 | 日本少妇影院 | 99精品无码一区二区 | 欧美三级一区 | 日韩18p| 麻豆精品免费 | 国产日韩在线看 | 台湾佬美性中文 | 蜜臀免费av | 国产精品视频一二三 | 精品蜜桃av | 黄片毛片一级 | 亚洲精品一区三区三区在线观看 | 久久精品8 | 在线激情 | 亚洲精品乱码 | 看av网站 | 精品xxxxx| 国产黑丝在线视频 | 少妇高潮伦 | 人妻一区二区三区 | 先锋影音一区二区三区 | 爱乃なみ加勒比在线播放 | 久久久久久久久久久久国产精品 | 51精品国产 | 污污av | 少妇特黄a一区二区三区88av | 国产精品久久久久久久av福利 | 最新毛片基地 | 午夜爽视频 | 欧美极品三级 | 日韩激情欧美 | 欧美三级视频在线播放 | 久草热在线 | 国产情侣在线视频 | 日韩中文字 | 午夜久久久久久久久 | 亚洲欧美一区二区激情 | 男人天堂影院 | 国产乱淫av麻豆国产 | 人妻丝袜一区二区三区 | 国产精品20p| 一区精品在线 | 黄色网在线免费观看 | 91玉足脚交白嫩脚丫 | 999av| 91啪国产在线 | 日本三级视频在线观看 | 国产精品高潮呻吟AV无码 | 九九爱视频 | 成年人在线免费观看网站 | 精品日韩在线观看 | 亚洲免费在线观看av | av资源在线播放 | 99国产揄拍国产精品 | 久久丫精品忘忧草西安产品 | 久久久成人精品一区二区三区 | 91精品国产自产精品男人的天堂 | 变态另类丨国产精品 | av日韩精品 | 岛国av噜噜噜久久久狠狠av | 天天噜 | 精品国产乱码久久久久久浪潮 | 黄色国产网站 | 国产日韩成人内射视频 | 激情六月色 | 成人在线观看一区 | 51福利视频 |