这个是我之前刚开始学习 STM32时做的一个蓝牙避障小车,现在我将之前自己写的程序源码和软件一起上传,希望能够帮到需要的人。
- #include"usart.h"
- #include"pwm.h"
- #include"sys.h"
- #include"delay.h"
- #include"hw.h"
- #include"c***.h"
- #include"lanya.h"
- int main()
- {
- int left,right,bzl,bzr,counter,i=0,j,max;
- u16 distance,dis[5];
- uart_init(9600);
- hw_init();
- delay_init(); //初始化延时函数
- PWM_Init(600,0);
-
- while(1)
- {
-
- lanya();
- bzl=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);//避障左边传感器
- bzr=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4);
-
- max=0;
- for(counter=0;counter<5;counter++)
- {
- dis[counter]=c***();
- }
- for(j=0;j<5;j++)
- {
- max=max+dis[j];
- }
- distance=max/5;
-
- //直行
- //左边
-
-
- if(bzr==0)//左转
- {
-
- tiM_SetCompare3(TIM2,0);//PA2提速
- TIM_SetCompare4(TIM2,600);//PA3为低
-
- TIM_SetCompare2(TIM3,600);//PA7反转
- TIM_SetCompare1(TIM3,0);//PA6为
- delay_ms(20);
-
-
- }
-
- if(bzl==0)//右转
- {
-
- TIM_SetCompare3(TIM2,600);//PA2反转
- TIM_SetCompare4(TIM2,1);//PA3为
-
- TIM_SetCompare2(TIM3,0);//PA7提速
- TIM_SetCompare1(TIM3,600);//PA6为低
- delay_ms(20);
-
-
- }
- if(distance<200)//左转
- {
-
-
-
-
- TIM_SetCompare3(TIM2,0);//PA2提速
- TIM_SetCompare4(TIM2,600);//PA3为低
-
- TIM_SetCompare2(TIM3,600);//PA7反转
- TIM_SetCompare1(TIM3,0);//PA6为
- delay_ms(20);
-
-
- }
- if(bzl==0&&distance<200)
- {
-
- TIM_SetCompare3(TIM2,0);//PA2提速
- TIM_SetCompare4(TIM2,600);//PA3为低
-
- TIM_SetCompare2(TIM3,600);//PA7反转
- TIM_SetCompare1(TIM3,0);//PA6为
- delay_ms(20);
-
- }
- if(bzr==0&&distance<200)
- {
-
- TIM_SetCompare3(TIM2,0);//PA2提速
- TIM_SetCompare4(TIM2,600);//PA3为低
-
- TIM_SetCompare2(TIM3,600);//PA7反转
- TIM_SetCompare1(TIM3,0);//PA6为
- delay_ms(20);
-
- }
- if(bzr==0&&bzl==0)
- {
-
- TIM_SetCompare3(TIM2,0);//PA2提速
- TIM_SetCompare4(TIM2,600);//PA3为低
-
- TIM_SetCompare2(TIM3,600);//PA7反转
- TIM_SetCompare1(TIM3,0);//PA6为
- delay_ms(20);
-
- }
- if(bzr==0&&bzl==0&&distance<200)
- {
- TIM_SetCompare3(TIM2,0);//PA2提速
- TIM_SetCompare4(TIM2,600);//PA3为低
-
- TIM_SetCompare2(TIM3,600);//PA7反转
- TIM_SetCompare1(TIM3,0);//PA6为
- delay_ms(30);
- }
-
- }
- TIM_SetCompare2(TIM3,200);//PA7
- TIM_SetCompare1(TIM3,600);//PA6为低
- //右边
- TIM_SetCompare3(TIM2,200);//PA2
- TIM_SetCompare4(TIM2,600);//PA3为低
- delay_ms(20);
-
- }
复制代码
3
|
|
|
|