目录

知识要点

课程内容

基础学习

程序学习

软件环境

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 机器人常见功能, 作为学习的指导,为之后学习做铺垫

开发板 C 型,cubeMX 与 keil 入门相关推荐

  1. 大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

    1.首先,我们先了解一下大疆开发板A型的资料,官方有提供 官网:RoboMaster 机甲大师赛 芯片型号STM32F427IIH6 2.了解M3508直流无刷电机的资料,官网有提供  3.于是我找到 ...

  2. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(1)keil环境配置

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)本文将会简单介绍此开发的Renesas RA2L1 开发板的前期配置.需要注意的是,MDK版本要5.30 以上. MD ...

  3. 嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通)

    嵌入式 Linux入门 环境篇第三课,开发板与PC的网络配置, 我们要实现 windows.ubuntu 和开发板三者的互通. ...... by 矜辰所致 前言 在环境篇前面的文章我们通过终端工具使 ...

  4. 野火F1开发板STM32案例-USART使用

    野火F1开发板STM32-USART使用 硬件平台 野火STM32F103ZET6 霸道V2开发板 正点原子F1开发板 STM32蓝色板 软件平台 Keil MDK 5.31 串口调试助手 串口配置步 ...

  5. 【致敬未来的攻城狮计划】--RA2E1 开发板测评(4)UART通讯

    前言 (1)首先感谢 李肯前辈的活动,从而申请到了RA2L1开发板的测评. (2)学习本文之前要具备的知识: [致敬未来的攻城狮计划]--RA2E1 开发板测评(1)keil环境配置: [致敬未来的攻 ...

  6. arduino loar_如何使用Arduino开发板制作函数生成器(波形发生器)

    对于喜欢偶尔鼓捣电子产品的工程师来说,他们都希望能有自己的实验室.万用表.钳形表.示波器.LCR表.函数发生器.双模电源和自动变压器都是实验室的基本配置.虽然所有这些都可以购买,但我们也可以轻松地自行 ...

  7. UCOS II移植到STM32F103开发板

    早期嵌入式开发没有嵌入式操作系统的概念 ,直接操作裸机,在裸机上写程序,比如用51单片机基本就没有操作系统的概念.通常把程序分为两部分:前台系统和后台系统. 简单的小系统通常是前后台系统,这样的程序包 ...

  8. 安富莱v6开发板网口通讯_【安富莱】各种开发板和模块的资料下载汇总贴(2020-04-06)...

    论坛新域名: 最新工作进展: 事隔五年之后,开启第2版DSP数字信号处理和CMSIS-NN神经网络教程,同步开启三代示波器(2020-03-30) 开发板类: 1.STM32-V7开发板(2020-0 ...

  9. 安富莱v6开发板网口通讯_【安富莱】各种开发板和模块的资料下载汇总贴(2019-07-30)...

    开发板类: 1.STM32-V7开发板(2019-07-28更新): 2.STM32-V6开发板(2019-07-28更新): (1)[安富莱]V6,V5开发板用户手册,重在BSP驱动包设计方法,HA ...

最新文章

  1. python selenium unittest_python+selenium+unittest——ui自动化的轻量级选择
  2. ExtJS实现完美Grid(2)--分组统计
  3. python写入数据到excel中_Python写入数据到Excel
  4. Eclipse 启动问题:'Initilizing Java Tooling' has encountered a problem(。。。)
  5. matlab cell,fix,floor,round取整的几种方式
  6. Java虚拟机组成详解
  7. 2022年移动应用趋势洞察白皮书
  8. 超级计算机应用领域的概括,超级计算机进展的相关研究
  9. Linux NFS存储服务部署
  10. 心语收集12:我以为要是唱的用心良苦,你就会对我多点在乎
  11. Harmony OS — ToastDialog提示对话框
  12. node.js require模板报错_简历不知道如何写起,推荐几个简历模板
  13. Flex请求Php端的奇怪现象
  14. C语言数据结构-顺序表的插入与删除(图文详解)
  15. NVIDIA:构建加速计算生态,推动深度学习应用落地
  16. 基于能量均衡高效WSN的LEACH协议改进算法
  17. Never give up!!
  18. linux开机不运行桌面快捷方式,Android 开机自动运行和添加删除桌面快捷方式
  19. 335x系列-解决爆破音导致的调用延迟问题
  20. Make Your First GAN With PyTorch:1.PyTorch基础

热门文章

  1. excel表个人开支明细表
  2. 最新超多制作模板的姓氏头像生成器小程序源码
  3. 驱动开发:内核CR3切换读写内存
  4. 人工智能智能决策支持系统:技术、特点和挑战
  5. 半桥dcdc变换器matlab,半桥式DC-DC变换器设计.doc
  6. wx.choosePoi的使用
  7. 学习JAVA的基础和知识点总结
  8. 读书笔记-看见未来:改变互联网世界的人们
  9. 闲聊 Android 异步任务
  10. DIY一台水冷台式机