开发板 C 型,cubeMX 与 keil 入门

发布于:2023-01-28 ⋅ 阅读:(1073) ⋅ 点赞:(0)

目录

 知识要点

课程内容

基础学习

程序学习

软件环境

cubeMX 新建工程

keil 软件简易入门

 Keil 的调试模式

RoboMaster 机器人功能简介

课程总结


  1.  知识要点

    1. 开发板 C 型出厂程序功能介绍
    2. cubeMX 从新建 ioc 工程到生成 keil 工程
    3. keil 工程设置介绍
    4. keil 软件调试功能介绍
    5. RoboMaster 机器人总体功能简介
  2. 课程内容


    本课程中,首先介绍 RoboMaster 开发板 C 型(以下简称开发板 C 型)出厂程序功能;之
    后学习如何使用 cubeMX 生成 keil 工程,学习 stm32 的 keil 工程常见的设置,学习 keil 软
    件如何进入调试模式;最后作为教程的开始,总体了解 RoboMaster 机器人的常见功能以及
    对应使用到 stm32 的外设功能,指导之后的学习。


  3. 基础学习


    RoboMaster 开发板 C 型采用高性能的 stm32 主控芯片,支持宽电压输入,集成专用的扩
    展接口,通信接口以及高精度 IMU 传感器,可配合 RoboMaster 产品或者其他配件使用。
    开发板 C 型具有如下外设:用户自定义 LED、5V 接口、BOOT 配置接口、micro USB 接
    口、SWD 接口、按键、可配置 I/O 接口、UART 接口、CAN 总线接口、PWM 接口、DBUS
    接口、数字摄像头 FPC 接口、蜂鸣器、电压检测 ADC、六轴惯性测量单元和磁力计。
    开发板 C 型出厂已烧录程序,可通过 micro USB 线连接 PC,使用串口工具对开发板 C 型
    的常用外设进行操作,操作如下所示:


    1. 在一级菜单选择界面上,可通过串口工具输入数字 1-9,选择对应的二级显示界面;在二级显示界面通过串口工具输入字母 q 或者 Q 退出二级显示界面。其中一级选择界面如图所示:


    2.  LED 正常状态为三色 LED 依次点亮。在 LED 显示界面显示当前 LED 状态:“LED ON”和“LED OFF”。LED ON 为三色 LED 均点亮,发出白光;LED OFF 指三色 LED 不是全部点亮。可使用串口工具输入 ON 或者 OFF 进行 LED 状态切换,LED 显示界面如下图所示:


    3. 蜂鸣器在开发板C型上电时会响起开机音效。在蜂鸣器显示界面显示当前蜂鸣器状态: “BUZZER OFF“和”BUZZER ON”。BUZZER OFF 为蜂鸣器不发出响声;BUZZER ON 为蜂鸣器响起《机甲大师》的主题曲《你》。可使用串口工具输入 ON 或者 OFF 进行 蜂鸣器状态切换,蜂鸣器显示界面如下图所示:


    4. 在 5V 接口显示界面显示当前 5V 接口状态:“LASER OFF“和”LASER ON”。LASER OFF 为 5V 接口不输出;LASER ON 为 LASER。可使用串口工具输入 ON 或者 OFF 进行 5V 接口状态切换,5V 接口显示界面如下图所示:


    5. 在按键显示界面显示当前按键状态:“KEY OFF“和”KEY ON”。KEY OFF 为按键处在未 按下状态;KEY ON 为按键处在已按下状态,按键显示界面如下图所示


    6.  在电源电压显示界面显示当前电源电压“BATTERYVOLTAGE: 24.000V“。其中24.000V 为当前电源电压,实际数值以测量为准,LED 显示界面如电源电压显示界面如下图所示:


    7. 在 IMU 显示界面显示陀螺仪、加速度计和磁力计数据,IMU 显示界面如下图所示:


    8. 在遥控器显示界面显示当前遥控器数据状态,遥控器数据显示界面如下图所示:


    9. 在 PWM 显示界面显示当前 PWM 输出高电平时间状态“PWM: 1000“。其中 1000 代表高电平时间为 1000ms,PWM 显示界面如下图所示

    10. 在 CAN 显示界面显示当前 CAN 接收数据包个数情况:“CAN1 RECEIVE NUM:1000“, “CAN2 RECEIVE NUM: 1000“。其中 1000 代表 1 秒内接收到数据包个数为1000 个, CAN 显示界面如下图所示:


  4. 程序学习

    1. 软件环境

      1. Toolchain/IDE : MDK-ARM V5
        STM32F4xx_DFP Packs:2.13.0
        STM32CubeMx:5.2.1
        package version: STM32Cube FW_F4 V1.21.1
        FreeRTOS version: 10.0.1
        CMSIS-RTOS version: 1.02

    2. cubeMX 新建工程


      1. 打开 cubeMX 软件,在 file 选项中选择“New Project”;

      2. 搜索 stm32f407ig,选择 STM32F407IGHx 芯片;

      3. 在 System Core 下选择 RCC 选项,在 RCC mode and Configuration 中的 High Speed Clock(HSE)下选择 Crystal/Ceramic Resonator;

      4. 点击顶部的 Clock Configuration,进行主频配置;将 Input frequecncy 设置为12,点击 旁边的 HSE 圆形按钮,配置/M 为/6,配置*N 为 X168,配置/P 为/2 ,选择 PLLCLK 圆形 按钮,配置 APB1 Prescaler 为/4,配置 APB2 Prescaler 为/2;

      5. 点击顶部的 Project Manager,给工程起名,选择存放目录,在 Toolchain/IDE 中选择 MDKARM V5;

      6. 点击旁边的 Code Generator,勾选 Copy only the necessary library files 以及 Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral;

      7. 点击顶部的 GENERATE CODE,等待代码生成,打开工程。

    3. keil 软件简易入门


      1. 打开生成的工程,keil 界面如图所示,其中 1 为调试模式,2 为编译改变的文件,3 为编 译全部的文件,4 为下载按键,5 为工程设置选项,6 为工程目录;

      2. 点击 5 工程设置,进行工程相关设置,选择 Output,其中 Create HEX file 为是否生成 HEX 文件,Browse Information 为是否增加浏览信息,选择是,可以使用鼠标右键点击函数 进行跳转操作,但会增加编译时长;

      3. 点击 C/C++,其中 1 方框为工程宏定义设置,可在此添加宏定义;2 方框为头文件引用目 录,对于项目自行建立的 h 文件需要在此处进行目录录入;

      4. .点击 Debug 选项,设置好对应的下载器;

      5. 点击下载器旁边的 Settings 选项,进行下载器相关设置,其中 Clock 中设置下载器的频 率,频率越高,下载速度越快,但容易受到干扰;

      6. 点击 Flash Download,其中 Erase Full Chip 代表下载时擦除芯片内全部页面的 flash, Erase Sectors 代表下载时擦除部分页面的 flash,Do not Erase 代表下载时不擦除 flash ; 点击 Reset and Run 代表下载完程序后立即运行程序。

    4.  Keil 的调试模式


      https://blog.csdn.net/morixinguan/article/details/86629805?ops_request_misc=&request_id=&biz_id=102&utm_term=%20Keil%20%E7%9A%84%E8%B0%83%E8%AF%95%E6%A8%A1%E5%BC%8F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-86629805.142^v39^new_blog_pos_by_title,185^v2^control&spm=1018.2226.3001.4187


  5. RoboMaster 机器人功能简介

    RoboMaster 机器人常见功能如下:
    1. 校准功能:提供机器人的校准功能,使用到 stm32 的 flash 读写功能;

    2. 底盘控制功能:完成底盘的麦轮运动控制,使用到 stm32 的 CAN 总线功能。

    3. 离线判断功能:判断设备是否离线,使用到开发板 C 型的蜂鸣器;

    4. 云台控制功能:完成云台的角度控制,使用到 stm32 的 CAN 总线功能;

    5. 姿态解算功能:完成陀螺仪加速度计的角度融合,解算欧拉角,使用到 stm32 的 SPI 和 I2C 总线读取相关数据,使用到 stm32 的外部中断作为数据更新的标志,使用到 stm32 的 PWM 对加热电阻进行控制;

    6. LED 的 RGB 切换:使用三色 LED 完成 RGB 显示,呼吸灯效,使用到开发板 C 型的 LED 灯;

    7.  OLED 显示功能:将信息显示出来,使用到 stm32 的 I2C 总线;

    8. 裁判系统数据解析功能:使用单字节解析裁判系统数据,使用到 stm32 的串口以及 DMA 功能;

    9. 遥控器数据解析功能:解析接收机发送的数据,使用到 stm32 的串口以及 DMA 功能;

    10. 舵机控制功能:通过按键控制舵机,使用 stm32 的 PWM 功能。

    11. 射击控制:控制下供弹装置,完成发射逻辑,使用到 stm32 的 GPIO 读取以及 CAN 总 线。

    12. 电源采样功能:采样电源电压,并估计当前电池电量,使用到 stm32 的 ADC 采样功能。

  6. 课程总结


    本课程为基础入门课程,学习到如何使用 cubeMX 和 keil 软件进行工程创建,编译,下载, 调试等功能;介绍了开发板 C 型出厂自带的程序功能以及 RoboMaster 机器人常见功能, 作为学习的指导,为之后学习做铺垫

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到