简单的巡线小车 stm32源程序,可实现直线 弧弯 钝角弯 直角弯等功能
新手学习
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "usart.h"
- #include "adc.h"
- #include "timer.h"
- #include "car.h"
-
- /************************************************
- ADC A0 A1 A2 A3
- PWM TIM3 CH2A7 TIM3 CH1A6
- F11高 F13低 F12高 F14低
- 中间灰度巡线 差速
- 旁边转弯 正反转
- ************************************************/
- int main(void)
- {
- GPIO_Config();
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为115200
- LED_Init(); //LED端口初始化
- Adc_Init(); //ADC初始化
- DMA_Config();
- TIM3_PWM_Init(99,71);//频率 10 KHZ
-
- while(1)
- {
- // printf ("%4d %4d %4d %4d\r\n",AD_Value[0],AD_Value[1],AD_Value[2],AD_Value[3]);
- // delay_ms(100);
- LED0=0; //灰度测试
- ADC_CHANGE();
- // if(AD_Value[0]>2900)left1=1;//检测到白线>3000 =1 检测到绿线<3000=0
- // else left1=0;
- // if(AD_Value[1]>2900)mid1=1;
- // else mid1=0;
- // if(AD_Value[2]>2900)mid2=1;
- // else mid2=0;
- // if(AD_Value[3]>2900)right1=1;
- // else right1=0;
- // printf ("%4d %4d %4d %4d\r\n",left1,mid1,mid2,right1);
- Go_STRAIGHT(80,80);
- RUN();
- }
-
- }
-
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
巡线小车.rar
(329.89 KB, 下载次数: 478)
|