找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5536|回復(fù): 5
收起左側(cè)

基于stm32的oled距離顯示系統(tǒng)程序(超聲波模塊)

  [復(fù)制鏈接]
ID:292221 發(fā)表于 2019-9-10 09:06 | 顯示全部樓層 |閱讀模式

超聲波測(cè)距模塊

超聲波測(cè)距模塊
超聲波測(cè)距模塊

oled顯示模塊

oled顯示模塊
oled顯示模塊


使用stm32f103rct6單片機(jī),接線說明在工程文件mian.c里面?zhèn)渥⒘说,使用的定時(shí)器計(jì)時(shí)。

單片機(jī)源程序如下:
  1. /*lin辰 2018.9.26*/
  2. /*按鍵控制led亮滅,通過"GPIO_ReadInputDataBit(GPIOx, GPIO_Pin_x)"函數(shù)實(shí)現(xiàn)讀取IO口狀態(tài),
  3. 并使用"!=RESET"進(jìn)行判斷按鍵是否按下,加入按鍵抖動(dòng)判斷*/
  4. /*說明:按鍵接地,"!=RESET":不等于0,也可寫成 "!=0" ,即按鍵沒有按下*/


  5. //  功能描述   : 0.96寸OLED 接口演示例程(STM32F103系列IIC)
  6. //              說明:
  7. //              ----------------------------------------------------------------
  8. //              GND   電源地
  9. //              VCC   接5V或3.3v電源
  10. //              SCL   接PB13(SCL)
  11. //              SDA   接PB15(SDA)           
  12. //              ----------------------------------------------------------------


  13. //測(cè)距模塊引腳:
  14. //             TRIG---GPIOC-PIN2
  15. //             ECHO---GPIOA-PIN4
  16. //             VCC----5V
  17.                                                
  18. //////////////////////////////////////////////////////////////////////////////////


  19. #include "stm32f10x.h"                        
  20. #include "ranging.h"
  21. #include "systick_delay.h"
  22. #include "timer.h"
  23. #include "oled.h"
  24. #include "bmp.h"
  25. u16 TIMCounter;
  26. u16 Dis;

  27. int main(void)

  28. {
  29. TRIG_Config();                //IO輸出觸發(fā)初始化 C2
  30. ECHO_Config();                //IO輸入時(shí)間檢測(cè)初始化 A4
  31. OLED_Init();                               //初始化OLED  
  32. OLED_Clear();
  33. TIMER_Init();//初始化,未使能

  34. while(1)
  35.   {
  36. OLED_DrawBMP(0,0,128,8,BMP1);
  37.                
  38.                
  39.         GPIO_SetBits(GPIOC, GPIO_Pin_2);                //給10us高電平
  40.                     Delay_us(11);//最少10us觸發(fā)信號(hào)
  41.                       GPIO_ResetBits(GPIOC, GPIO_Pin_2);//拉低電平
  42.                 while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_4)==0);//等待接受高電平
  43.                 TIMER_ON();  //定時(shí)器開
  44.                 while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_4)==1);//等待接受低電平
  45.                         TIMCounter = TIM_GetCounter(TIM6);//獲取計(jì)數(shù)器值
  46.                         TIMER_OFF();         //定時(shí)器關(guān)
  47.                         Dis = TIMCounter/58;//計(jì)算距離
  48.                 OLED_ShowNum(62,2,Dis,3,16);//顯示ASCII字符的碼值,顯示距離
  49.                 Delay_ms(1000);
  50.                 if(Dis>=390){                                                                                                //超出測(cè)量距離警告!
  51.                         OLED_ShowString(80,4,"Error!",16);
  52.                         Delay_ms(1000);
  53.                 }
  54.                
  55.                                   }
  56.                 }
復(fù)制代碼

所有資料51hei提供下載:
OLED超聲波測(cè)距系統(tǒng).7z (189.09 KB, 下載次數(shù): 158)







評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:699194 發(fā)表于 2020-3-14 18:50 | 顯示全部樓層
程序都沒有顯示距離,你的程序是不是假的啊,隨便弄一副bmp圖程序的,假程序

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:706151 發(fā)表于 2020-3-18 17:32 | 顯示全部樓層
剛好需要,頂上
回復(fù)

使用道具 舉報(bào)

ID:700459 發(fā)表于 2020-3-19 07:35 | 顯示全部樓層
thank you
回復(fù)

使用道具 舉報(bào)

ID:954677 發(fā)表于 2021-7-20 14:31 | 顯示全部樓層
quicklee 發(fā)表于 2020-3-18 17:32
剛好需要,頂上

這個(gè)程序能不能用哇
回復(fù)

使用道具 舉報(bào)

ID:830831 發(fā)表于 2021-7-20 18:04 | 顯示全部樓層
測(cè)距的原理是對(duì)的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表