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

QQ登錄

只需一步,快速開始

搜索
查看: 3189|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

關(guān)于stm32f103c8t6避障的程序教學(xué)代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:331804 發(fā)表于 2018-5-17 03:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這個(gè)是我之前通過不斷的學(xué)習(xí)以及大神們修改的stm32f103c8t6控制電機(jī),并且可避障轉(zhuǎn)向,前后驅(qū)進(jìn)的程序,對(duì)于新手可以有一些參考作用。!

完整源碼下載: 避障.zip (327.11 KB, 下載次數(shù): 42)
  1. /*
  2. ########################################################
  3. ---------------------------------------------------
  4. 工程硬件平臺(tái):智能小車 V1.0
  5. 工程程序版本:CleverCar_Elude V1.0.0.0
  6. ---------------------------------------------------

  7. ---------------------------------------------------
  8. 硬件連接:請(qǐng)參考《智能小車原理圖_V1.0》
  9. ---------------------------------------------------

  10. ---------------------------------------------------
  11. 程序功能:

  12. 使用三個(gè)紅外避障模塊,進(jìn)行避障行駛
  13. ---------------------------------------------------
  14. ########################################################
  15. */

  16. #include "stm32f10x.h"
  17. #include "bit_band.h"
  18. #include "delay.h"
  19. #include "led.h"
  20. #include "key.h"
  21. #include "timer.h"
  22. #include "pwm.h"
  23. #include "MotorDrive.h"
  24. #include "trail.h"
  25. #include "elude.h"
  26. #include "spi.h"
  27. #include "rf2G4.h"


  28. int main(void)
  29. {        
  30.         // 注:程序中使用中斷時(shí),NVIC分組設(shè)置應(yīng)盡量位于程序起始處,并且在設(shè)置后盡量不要再更改NVIC分組
  31.         //------------------------------------------------------------------------------------------
  32.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //NVIC分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  33.         
  34.         delay_Init();                                // 延時(shí)初始化(注:調(diào)用延時(shí)函數(shù)之前,必須先調(diào)用delay_Init()將SysTick初始化)
  35.         
  36.         LED_Init_JX() ;                                // 初始化LED硬件接口:LED_Green=PA_out(1)、LED_Bule=PA_out(2)
  37.         
  38.         //TIM3_Time_Init();                        // 定時(shí)器3初始化
  39.         
  40.         TIM1_PWM_Init_JX();                        // TIM1_PWM初始化
  41.         TIM4_PWM_Init_JX();                        // TIM4_PWM初始化
  42.         
  43.         //Trail_Input_Init_JX();        // 紅外尋跡初始化
  44.         
  45.         Elude_Input_Init_JX();                // 紅外避障初始化
  46.         
  47.         
  48.         while(1)
  49.         {
  50.                 Elude_detect_barrier();        // 紅外避障檢測(cè)
  51.                
  52.                
  53.                 // 未發(fā)現(xiàn)障礙
  54.                 //-------------------------------------------------------        
  55.                 if( S_Elude_Input == Not_Find_Barrier )        
  56.                 {                                                                        
  57.                         Car_forward(20);        // 前進(jìn)
  58.                 }
  59.                 //-------------------------------------------------------
  60.         
  61.                 // 左側(cè)發(fā)現(xiàn)障礙
  62.                 //----------------------------------------------
  63.                 else if( S_Elude_Input == Left_Find_Barrier || S_Elude_Input == Left_Middle_Find_Barrier )
  64.                 {
  65.                         Car_Turn_Right(50);        // 左轉(zhuǎn)
  66.                 }
  67.                
  68.                 // 右側(cè)發(fā)現(xiàn)障礙
  69.                 //----------------------------------------------
  70.                 else if( S_Elude_Input == Right_Find_Barrier || S_Elude_Input == Right_Middle_Find_Barrier )
  71.                 {
  72.                         Car_Turn_Left(50);        // 右轉(zhuǎn)
  73.                 }
  74.                
  75.                 // 中間/全部發(fā)現(xiàn)障礙
  76.                 //----------------------------------------------
  77.                 else if( S_Elude_Input == Middle_Find_Barrier || S_Elude_Input == All_Find_Barrier )
  78.                 {
  79.                         Car_backward(50);        // 后退
  80.                         delay_ms(200);
  81.                         Car_Turn_Left(50);        // 左轉(zhuǎn)
  82.                         delay_ms(200);
  83.                 }
  84.                
  85.                 // 其他情況
  86.                 //----------------------------------------------
  87.                 else // if( S_Elude_Input == Left_Right_Find_Barrier )
  88.                 {
  89.                         Car_forward(20);        // 前進(jìn)
  90.                 }
  91.                 //----------------------------------------------

  92.                 //---------------------------------------------------------------------------------------------------
  93.                
  94.         }// while(1)
  95.         
  96. }// int main(void)

復(fù)制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:228186 發(fā)表于 2018-5-17 10:22 | 只看該作者
很好的教程,新手可以學(xué)習(xí)、參考了。謝謝樓主的無私奉獻(xiàn)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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