#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "timer.h"
#include "beep.h"
#include "bmp.h"
#include "oled.h"
u8 table1=;//µ÷²¨éèöã
u8 table2=;
extern u8 tim5ch1_capture_sta; //êäè벶»ñ×´ì¬
extern u32 tim5ch1_capture_val; //êäè벶»ñöµ
long long temp=0;//²â¾àê±¼ä
long long s=0,s1=0,t=0,sm=0,sa=0;//¾ààë²îêý
int table=;
/*************½óêõêý¾ý******************
len ´®¿ú½óêõµ½µäêý¾ý³¤¶è
t ´«µýöµ£¬½«s1¸³¸øt£¬è¥ö´ððæäëû³ìðò
***************************************/
float recevie()
else
}//ö÷º¯êý
int main(void)
}
基於stm32的超聲波測距顯示系統
1.基本要求:利用stm32開發完成乙個超聲波測距系統(公釐級),要求能實時顯示所測距離,利用串列埠列印到電腦上,並具報警功能。
具體要求:*系統的基本測距功能
*實時顯示當前的測量數值和當前的報警閥值
*可以設定一定的報警閥值
*測距精度
*各個模組的契合度,系統的合理性流暢性
***的規範
2.系統主要模組及其主要演算法解析
超聲波模組:超聲波模組是hc-sr04。這個超聲波模組共有四個輸入口:vcc,gnd,trig(控制端),echo(測距端)。給trig乙個超過20us的高電平,就會啟動超聲波測距。
void start(void)
測距模組:利用了定時器中的輸入捕獲功能,捕獲echo口的高電平持續時間(測距時間)
float count()
return s; }
串列埠設定最小距離:利用電腦給微控制器傳資料,並顯示串列埠上。由於電腦給微控制器傳的是字元,在這裡利用了ascii碼的碼值,將字元轉換成資料,0的ascii碼是48,根據這個可以求得其他資料的ascii碼
int table1=;
float recevie()
t=s1;//½«½óêõµ½µäêý¾ý¸øµ½t
s1=0;//s1³õê¼»¯
usart_rx_sta=0;//×´ì¬î»çåáã }
return t; }
報警模組:從串列埠得到的最小距離進行判斷
精度:卡爾曼濾波:卡爾曼濾波是用來調資料精度的,剛開始加上濾波,資料會有乙個漸變的過程,使資料越加不準確。於是又回去調了一些延時,整理整個系統的時序。這個時候資料逐漸穩定,但是還是會有突然的跳變,使系統的穩定性不夠高。於是這個時候加上了濾波,資料不會再出現突然的跳變。但是在距離突然有乙個巨大的變化時,經過卡爾曼處理的資料還是不會突然的變化,有乙個漸變的過程,但是這個過程的時間減短。對比其他資料處理,這個組合處理後的資料是最穩定的。
3.總結:
我認為整個過程中最難的過程是程式除錯過程,在除錯過程中,其實到了這個時候,程式的基本的思路是有了的,但是在一些細節的處理上的不夠完善,可能導致你的資料出現乙個較大的跳變,甚至跑宕機。
1我覺得如果在寫程式過程前,首先弄清楚程式的乙個時序,也可以說是流程圖,這樣在程式除錯過程中,工作就會輕鬆許多。
2而且程式除錯前,一定要將程式備份,防止程式改崩。
3個人認為,在程式除錯過程中,最好不要推翻程式,重來,我認為工作量更大。
stm32驅動超聲波模組
define hcsr04 port gpiob define hcsr04 clk rcc apb2periph gpiob define hcsr04 trig gpio pin 8 define hcsr04 echo gpio pin 9 define trig send n dowhile...
stm32驅動超聲波模組
下面是關於stm32驅動超聲波模組的一段 有需要的朋友可以複製參考,希望對大家能夠有所幫助和啟發。define hcsr04 port gpiob define hcsr04 clk rcc apb2periph gpiob define hcsr04 trig gpio pin 8 define ...
基於STM32使用超聲波HC SR04模組
寫在前面注意的幾點 1 hc sr04模組必須使用5v供電,不能是3.3v 2 若單是測距,無需使用中斷 3 echo和trig兩個引腳可以任意接可用的gpio,和定時器無關 說一下超聲波的工作原理 微控制器給trig引腳乙個最少10us的高電平,然後拉低引腳,便啟動了模組,然後超聲波就被發了出去,...