標題:
關(guān)于stm32f103c8t6避障的程序教學(xué)代碼
[打印本頁]
作者:
NotFound404丶
時間:
2018-5-17 03:38
標題:
關(guān)于stm32f103c8t6避障的程序教學(xué)代碼
這個是我之前通過不斷的學(xué)習(xí)以及大神們修改的stm32f103c8t6控制電機,并且可避障轉(zhuǎn)向,前后驅(qū)進的程序,對于新手可以有一些參考作用。。
完整源碼下載:
避障.zip
(327.11 KB, 下載次數(shù): 42)
2018-5-17 03:37 上傳
點擊文件名下載附件
避障
下載積分: 黑幣 -5
/*
########################################################
---------------------------------------------------
工程硬件平臺:智能小車 V1.0
工程程序版本:CleverCar_Elude V1.0.0.0
---------------------------------------------------
---------------------------------------------------
硬件連接:請參考《智能小車原理圖_V1.0》
---------------------------------------------------
---------------------------------------------------
程序功能:
使用三個紅外避障模塊,進行避障行駛
---------------------------------------------------
########################################################
*/
#include "stm32f10x.h"
#include "bit_band.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "timer.h"
#include "pwm.h"
#include "MotorDrive.h"
#include "trail.h"
#include "elude.h"
#include "spi.h"
#include "rf2G4.h"
int main(void)
{
// 注:程序中使用中斷時,NVIC分組設(shè)置應(yīng)盡量位于程序起始處,并且在設(shè)置后盡量不要再更改NVIC分組
//------------------------------------------------------------------------------------------
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //NVIC分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
delay_Init(); // 延時初始化(注:調(diào)用延時函數(shù)之前,必須先調(diào)用delay_Init()將SysTick初始化)
LED_Init_JX() ; // 初始化LED硬件接口:LED_Green=PA_out(1)、LED_Bule=PA_out(2)
//TIM3_Time_Init(); // 定時器3初始化
TIM1_PWM_Init_JX(); // TIM1_PWM初始化
TIM4_PWM_Init_JX(); // TIM4_PWM初始化
//Trail_Input_Init_JX(); // 紅外尋跡初始化
Elude_Input_Init_JX(); // 紅外避障初始化
while(1)
{
Elude_detect_barrier(); // 紅外避障檢測
// 未發(fā)現(xiàn)障礙
//-------------------------------------------------------
if( S_Elude_Input == Not_Find_Barrier )
{
Car_forward(20); // 前進
}
//-------------------------------------------------------
// 左側(cè)發(fā)現(xiàn)障礙
//----------------------------------------------
else if( S_Elude_Input == Left_Find_Barrier || S_Elude_Input == Left_Middle_Find_Barrier )
{
Car_Turn_Right(50); // 左轉(zhuǎn)
}
// 右側(cè)發(fā)現(xiàn)障礙
//----------------------------------------------
else if( S_Elude_Input == Right_Find_Barrier || S_Elude_Input == Right_Middle_Find_Barrier )
{
Car_Turn_Left(50); // 右轉(zhuǎn)
}
// 中間/全部發(fā)現(xiàn)障礙
//----------------------------------------------
else if( S_Elude_Input == Middle_Find_Barrier || S_Elude_Input == All_Find_Barrier )
{
Car_backward(50); // 后退
delay_ms(200);
Car_Turn_Left(50); // 左轉(zhuǎn)
delay_ms(200);
}
// 其他情況
//----------------------------------------------
else // if( S_Elude_Input == Left_Right_Find_Barrier )
{
Car_forward(20); // 前進
}
//----------------------------------------------
//---------------------------------------------------------------------------------------------------
}// while(1)
}// int main(void)
復(fù)制代碼
作者:
wyj841224
時間:
2018-5-17 10:22
很好的教程,新手可以學(xué)習(xí)、參考了。謝謝樓主的無私奉獻
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1