Skip to content

Latest commit

 

History

History

CCC_crazy_carrier_car

小车程序说明

概述

  • 采用STM32F407vet6核心板作为主控
  • 采用STMCubeMX生成工程,用keil5进行编译和下载
  • 包含:步进电机驱动、舵机驱动、屏幕显示、树莓派通信

工程结构和使用说明

整体结构

  • Core:主程序代码main.c所在,我们所修改的就只有main.c和main.h
  • Drivers:驱动代码所在,包括各种外设的驱动代码,不需要修改
  • MDK-ARM:keil工程文件所在,不需要修改
  • communication:包括串口通信相关和定时器中断相关(串口屏、视觉联调等主要代码所在)
  • motor_control: 步进电机的驱动库,提供了电机的控制函数,部分电机控制相关的参数在这里设置(如电机的转速、加速度、移动位置等)
  • MPU6050: 陀螺仪的驱动库,提供了陀螺仪的初始化函数和读取函数,目前未使用
  • screen: 显示屏的驱动库,用的串口屏,只需要用printf调用串口发送数据即可
  • sensor: 传感器的驱动库,暂无内容
  • servo: 舵机的驱动库,待完善
  • template: .c和.h文件的模板,用于新建文件时参考

下面是主要的程序所在的文件

main.c

  • 首先初始化各个外设(串口、中断、等待电机初始化等)
  • 进行预先设定好的程序,如行走、转弯、识别、抓取等。
  • 在各个动作进行的过程中,借助一些全局变量来进行状态的判断和传输(比如当到位时用串口给树莓派发消息,树莓派则开始进行视觉识别)

my_timer.c

  • 定时器控制的原理即采用定时器中断,每隔一段时间执行一次中断函数,中断函数中进行一些操作,如电机的控制、传感器的读取等。
  • 电机的微调控制在此

my_usart.c

  • 串口的通信在此,包括串口屏、树莓派、电机的通信

motor.c

  • 电机的控制函数在此,主要是电机的位置控制、速度控制

my_servo.c

  • 舵机的控制函数在此,待完善