|
超聲波測(cè)距模塊
超聲波測(cè)距模塊
oled顯示模塊
oled顯示模塊
使用stm32f103rct6單片機(jī),接線說明在工程文件mian.c里面?zhèn)渥⒘说,使用的定時(shí)器計(jì)時(shí)。
單片機(jī)源程序如下:
- /*lin辰 2018.9.26*/
- /*按鍵控制led亮滅,通過"GPIO_ReadInputDataBit(GPIOx, GPIO_Pin_x)"函數(shù)實(shí)現(xiàn)讀取IO口狀態(tài),
- 并使用"!=RESET"進(jìn)行判斷按鍵是否按下,加入按鍵抖動(dòng)判斷*/
- /*說明:按鍵接地,"!=RESET":不等于0,也可寫成 "!=0" ,即按鍵沒有按下*/
- // 功能描述 : 0.96寸OLED 接口演示例程(STM32F103系列IIC)
- // 說明:
- // ----------------------------------------------------------------
- // GND 電源地
- // VCC 接5V或3.3v電源
- // SCL 接PB13(SCL)
- // SDA 接PB15(SDA)
- // ----------------------------------------------------------------
-
-
- //測(cè)距模塊引腳:
- // TRIG---GPIOC-PIN2
- // ECHO---GPIOA-PIN4
- // VCC----5V
-
- //////////////////////////////////////////////////////////////////////////////////
- #include "stm32f10x.h"
- #include "ranging.h"
- #include "systick_delay.h"
- #include "timer.h"
- #include "oled.h"
- #include "bmp.h"
- u16 TIMCounter;
- u16 Dis;
- int main(void)
- {
- TRIG_Config(); //IO輸出觸發(fā)初始化 C2
- ECHO_Config(); //IO輸入時(shí)間檢測(cè)初始化 A4
- OLED_Init(); //初始化OLED
- OLED_Clear();
- TIMER_Init();//初始化,未使能
- while(1)
- {
- OLED_DrawBMP(0,0,128,8,BMP1);
-
-
- GPIO_SetBits(GPIOC, GPIO_Pin_2); //給10us高電平
- Delay_us(11);//最少10us觸發(fā)信號(hào)
- GPIO_ResetBits(GPIOC, GPIO_Pin_2);//拉低電平
- while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_4)==0);//等待接受高電平
- TIMER_ON(); //定時(shí)器開
- while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_4)==1);//等待接受低電平
- TIMCounter = TIM_GetCounter(TIM6);//獲取計(jì)數(shù)器值
- TIMER_OFF(); //定時(shí)器關(guān)
- Dis = TIMCounter/58;//計(jì)算距離
- OLED_ShowNum(62,2,Dis,3,16);//顯示ASCII字符的碼值,顯示距離
- Delay_ms(1000);
- if(Dis>=390){ //超出測(cè)量距離警告!
- OLED_ShowString(80,4,"Error!",16);
- Delay_ms(1000);
- }
-
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
OLED超聲波測(cè)距系統(tǒng).7z
(189.09 KB, 下載次數(shù): 158)
2019-9-11 03:23 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|