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

QQ登錄

只需一步,快速開(kāi)始

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

3路循跡STM32參考代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:927279 發(fā)表于 2021-11-6 14:03 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
發(fā)出來(lái)供大家參考學(xué)習(xí) 附循跡代碼

單片機(jī)源程序如下:
  1. //連接方式 :請(qǐng)參考interface.h文件
  2. //部份源碼來(lái)源網(wǎng)絡(luò)
  3. #include "stm32f10x.h"
  4. #include "interface.h"
  5. #include "LCD1602.h"
  6. #include "IRCtrol.h"
  7. #include "motor.h"
  8. #include "uart.h"

  9. //全局變量定義
  10. unsigned int speed_count=0;//占空比計(jì)數(shù)器 50次一周期
  11. char front_left_speed_duty=SPEED_DUTY;
  12. char front_right_speed_duty=SPEED_DUTY;
  13. char behind_left_speed_duty=SPEED_DUTY;
  14. char behind_right_speed_duty=SPEED_DUTY;

  15. unsigned char tick_5ms = 0;//5ms計(jì)數(shù)器,作為主函數(shù)的基本周期
  16. unsigned char tick_1ms = 0;//1ms計(jì)數(shù)器,作為電機(jī)的基本計(jì)數(shù)器
  17. unsigned char tick_200ms = 0;//刷新顯示

  18. char ctrl_comm = COMM_STOP;//控制指令
  19. char ctrl_comm_last = COMM_STOP;//上一次的指令
  20. unsigned char continue_time=0;
  21. unsigned char bt_rec_flag=0;//藍(lán)牙控制標(biāo)志位

  22. //循跡,通過(guò)判斷三個(gè)光電對(duì)管的狀態(tài)來(lái)控制小車(chē)運(yùn)動(dòng)
  23. void SearchRun(void)
  24. {
  25.         //三路都檢測(cè)到
  26.         if(SEARCH_M_IO == BLACK_AREA && SEARCH_L_IO == BLACK_AREA && SEARCH_R_IO == BLACK_AREA)
  27.         {
  28.                 ctrl_comm = COMM_UP;
  29.                 return;
  30.         }
  31.        
  32.         if(SEARCH_R_IO == BLACK_AREA)//右
  33.         {
  34.                 ctrl_comm = COMM_RIGHT;
  35.         }
  36.         else if(SEARCH_L_IO == BLACK_AREA)//左
  37.         {
  38.                 ctrl_comm = COMM_LEFT;
  39.         }
  40.         else if(SEARCH_M_IO == BLACK_AREA)//中
  41.         {
  42.                 ctrl_comm = COMM_UP;
  43.         }
  44. }


  45. int main(void)
  46. {
  47.         delay_init();
  48.         GPIOCLKInit();
  49.         UserLEDInit();
  50.         LCD1602Init();
  51.         //IRCtrolInit();
  52.         TIM2_Init();
  53.         MotorInit();
  54.         ServoInit();
  55.        
  56.         RedRayInit();
  57.         //USART3Conf(9600);

  58. while(1)
  59. {         
  60.                          if(tick_5ms >= 5)
  61.                 {
  62.                         tick_5ms = 0;
  63.                         tick_200ms++;
  64.                         if(tick_200ms >= 40)
  65.                         {
  66.                                 tick_200ms = 0;
  67.                                 LEDToggle(LED_PIN);
  68.                         }
  69. //                        continue_time--;//200ms 無(wú)接收指令就停車(chē)
  70. //                        if(continue_time == 0)
  71. //                        {
  72. //                                continue_time = 1;
  73. //                                CarStop();
  74. //                        }
  75.                         //do something
  76.                         SearchRun();
  77.                         if(ctrl_comm_last != ctrl_comm)//指令發(fā)生變化
  78.                         {
  79.                                 ctrl_comm_last = ctrl_comm;
  80.                                 switch(ctrl_comm)
  81.                                 {
  82.                                         case COMM_UP:    CarGo();break;
  83.                                         case COMM_DOWN:  CarBack();break;
  84.                                         case COMM_LEFT:  CarLeft();break;
  85.                                         case COMM_RIGHT: CarRight();break;
  86.                                         case COMM_STOP:  CarStop();break;
  87.                                         default : break;
  88.                                 }
  89.                                 Delayms(10);//防抖
  90.                                 LCD1602WriteCommand(ctrl_comm);
  91.                         }
  92.                 }
  93.                
  94. }
  95. }
復(fù)制代碼

Keil代碼下載: 3路循跡STM32參考實(shí)驗(yàn).7z (180.74 KB, 下載次數(shù): 13)



評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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