基于stm32f407八字循迹小车代码(C语言写的很详细)
### 基于STM32F407的八字循迹小车代码解析 #### 一、概述 本文档详细解析了基于STM32F407微控制器的八字循迹小车代码,该代码使用C语言编写,适用于初学者理解和学习。通过对主程序以及其他相关模块初始化函数的分析,我们可以深入了解其工作原理和技术细节。 #### 二、代码结构与功能模块 ##### 1. 头文件包含 ```c #include"sys.h" #include"delay.h" #include"usart.h" #include"led.h" #include"pwm.h" #include"chelun.h" #include"chuangan.h" ``` - **sys.h**:系统配置文件,可能包含了STM32F407的硬件配置。 - **delay.h**:延时函数相关的头文件。 - **usart.h**:串口通信配置文件。 - **led.h**:LED控制配置文件。 - **pwm.h**:PWM输出配置文件。 - **chelun.h**:车轮驱动配置文件。 - **chuangan.h**:传感器配置文件。 ##### 2. 初始化函数 ```c chuangan_Init(); chelun_Init(); ``` - **chuangan_Init()**:初始化传感器模块。 - **chelun_Init()**:初始化车轮驱动模块。 ##### 3. 串口初始化 ```c uart_init(115200); ``` - **uart_init()**:初始化串口通信,设置波特率为115200bps。 ##### 4. PWM初始化 ```c TIM14_PWM_Init(500-1,84-1); TIM3_PWM_Init(500-1,84-1); ``` - **TIM14_PWM_Init()** 和 **TIM3_PWM_Init()**:初始化两个定时器,用于生成PWM信号,设定重装载值为499,时钟频率为1MHz,因此PWM频率为2kHz。 #### 三、主循环逻辑 主循环部分是整个程序的核心,它根据传感器的状态来控制小车的运动方向。 ##### 1. 直行逻辑 当传感器1检测到黑色线条而传感器2和3没有检测到时: ```c if(chuangan_1==0&&chuangan_2==1&&chuangan_3==0){ delay_ms(10); TIM_SetCompare1(TIM14,280); TIM_SetCompare1(TIM3,280); chelun_zuo1=1; chelun_zuo2=0; chelun_you1=1; chelun_you2=0; } ``` - 将两个PWM输出设置为相同的值(280),使两个电机以相同速度转动,实现直行。 ##### 2. 左转逻辑 当传感器1检测到黑色线条而传感器2和3都没有检测到时: ```c if(chuangan_1==1&&chuangan_2==0&&chuangan_3==0){ delay_ms(10); TIM_SetCompare1(TIM14,200); TIM_SetCompare1(TIM3,190); chelun_zuo1=1; chelun_zuo2=1; chelun_you1=1; chelun_you2=0; } ``` - 设置左轮的速度高于右轮的速度,使小车向左转。 ##### 3. 右转逻辑 当传感器1和2没有检测到黑色线条而传感器3检测到时: ```c if(chuangan_1==0&&chuangan_2==0&&chuangan_3==1){ delay_ms(10); TIM_SetCompare1(TIM14,190); TIM_SetCompare1(TIM3,230); chelun_zuo1=1; chelun_zuo2=0; chelun_you1=1; chelun_you2=1; } ``` - 设置右轮的速度高于左轮的速度,使小车向右转。 ##### 4. 定位与停止 当三个传感器都没有检测到黑色线条时: ```c if(chuangan_1==0&&chuangan_2==0&&chuangan_3==0){ delay_ms(10); TIM_SetCompare1(TIM14,200); TIM_SetCompare1(TIM3,200); chelun_zuo1=1; chelun_zuo2=0; chelun_you1=1; chelun_you2=0; } ``` - 小车停止并保持当前状态。 #### 四、总结 通过上述分析,我们可以看出这是一个非常典型的基于STM32F407的循迹小车程序。它利用传感器检测地面轨迹,并通过调整电机速度来控制小车的运动方向。对于初学者来说,理解这些代码背后的逻辑非常重要,这有助于加深对微控制器以及相关硬件接口的理解。此外,该代码还提供了一个很好的起点,可以根据实际需求进行修改和扩展。
剩余10页未读,继续阅读
- 丫丫5632019-04-17乱码。。。。。。。
- nandycooh2019-05-09乱码还没啥用,浪费积分了
- qq_444636982019-03-06还行。。。。。。。
- 粉丝: 22
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5 薪酬结构统计分析表(依据基本信息自动生成).xlsx
- 4 员工工资表-部门薪酬分析.xlsx
- 8 公司工程部人事薪酬分析.xlsx
- 13 公司人力资源薪酬工资统计表.xlsx
- 7 薪酬市场数据统计分析.xlsx
- 9 公司员工薪酬统计分析表.xlsx
- 10 财务分析员工薪酬统计表.xlsx
- 12 财务报表员工薪酬结算.xlsx
- 11 财务报表员工薪酬分析.xlsx
- 15 薪资情况分析表.xlsx
- 14 薪资筹划财务分析表.xlsx
- 18 财务汇报部门历年薪酬统计图表.xlsx
- 16 月度工资支出数据汇总图表.xlsx
- 17财务报告年度工资统计图表1.xlsx
- 20 工资表-部分统计-图表展示.xlsx
- 21 公司部门工资情况汇报图表模板.xlsx