zoukankan      html  css  js  c++  java
  • 《SLAM导航机器人基础》第三章:单片机与STM32:单片机概述和Keil开发环境配置

    3.1 单片机概述

    我们在第一章中了解了单片机概念,我们同学在大学中也会有单片机课程,一般选型经典的51单片机。单片机的处理器频率为8M,72M,168M等,处理器频率指的是处理器时钟频率,由此可得8M,72M,168M频率处理器的时钟周期分别为125us、13.8us、5.9us。假如我们有一条C++语句,最终需要10个时钟周期,则该语句耗时1250us、138us、59us。若我们运行1000行这样的语句,则需要1.25秒、0.138秒、0.059秒。由此可见,单片机处理速度较慢,适合处理任务负荷低的任务,同时要求我们程序尽量简洁,逻辑设计合理。除了频率,单片机的位数也不一样。有8位、16位、32位。8位指的是8个二进制位,可以表达数值0~255。我们常用的是十进制,逢十进一。但在计算机领域,常用的是二进制,逢二进一。8位二进制数,最大为11111111(二进制表示),等于255(十进制表示)。8位单片机,指的是该单片机,一次只能处理8位数据。单片机课程使用的8051是8M,8位单片机。目前机器人主流使用的是STM32系列的32位单片机,其中F1系列频率为72M,F4系列为168M。我们教程以STM32F103VET6芯片(若想了解型号具体含义,可搜索stm32芯片命名规则)举例。STM32F103VET6(32位,72M,100管脚,512KB ROM,64KB RAM)小批量价格为17元,STM32F407VET6(32位,168M,100管脚,512KB ROM,64KB RAM)小批量价格为26元。ROM,相当于计算机的硬盘,RAM则相当于内存。我们的程序存储在ROM中,程序运行产生的数据,比如变量等,存储在RAM。在尽可能低价格的硬件上实现同样的功能,是工程师必备的追求。

    单片机开发,需准备开发环境:编译器软件、硬件电路板、编译下载器等。本章学习内容开发配件为:Keil5、ST-Link v2下载器、CHEAPX机器人控制板。

    Keil编译器,是一款强大并且流行的单片机编译器软件,可将我们的程序编译成二进制文件,keil的调试功能非常强大。除了keil,还有一款编译器是IAR,相对小众一些。ST-Link v2下载器,可用于将二进制文件下载至单片机中,也可用于在线调试。

    单片机学习板,国内的正点原子做得很不错,配套资料齐全、例程丰富,学习论坛人气很旺。不过,由于产品定性为单片机学习板,没有电机接口、没有驱动器等,只能运行单个外设的简单例程,难以深入了解实际的工程开发。有些淘宝上卖的项目控制板具备电机接口,但没有开放源代码,配套学习例程,新手难以作为学习板,同时没有超声波和碰撞传感器接口,传感器接口不完整。本教程期望中的单片机学习板,既有丰富的外设让刚入门单片机的同学们学习,学习以后又能设计作品,在实际的机器人开发项目中真正掌握单片机开发技术。CHEAPX机器人控制板,价格比正点原子开发板低很多,配备6轴IMU传感器、7W电机驱动器,串口USB,CAN,蜂鸣器,12V锂电池输口,碰撞传感器和超声波测距传感器接口各5路,5V3A USB电源输出,可为树莓派等算法板提供充足电力。本教程以其作为学习板,并在后续教程中,使用该控制板制作SLAM机器人。有兴趣的同学可在以下店铺购买:

    https://shop232938673.taobao.com/category-1535592140.htm?spm=a1z10.1-c-s.0.0.4bb04117pbDnKj&search=y&parentCatId=1535592138&parentCatName=%BB%FA%C6%F7%C8%CB%D7%E9%BC%FE&catName=%BF%D8%D6%C6%C6%F7

     

    我们这一章推荐的课外学习资料是正点原子,包括网盘资料,论坛。

    正点原子的网盘资料链接: https://pan.baidu.com/s/11Ze2WRbC6UA7qfTnILFhLw 提取码:2067

    论坛链接:http://www.openedv.com/forum.php

    3.2 Keil开发环境

    3.2.1 下载与安装keil

    1.打开上节的正点原子的网盘资料链接: https://pan.baidu.com/s/11Ze2WRbC6UA7qfTnILFhLw 提取码:2067

    下载网盘目录 6.软件资料.zip

     2.下载后解压,如下图,打开MDK5文件夹

     3.MDK文件夹内容入下图,按照文件夹内的文件“安装过程”操作

     4.安装mdk_514.exe

    4.1双击打开mdk514,点next

     

    4.2勾选同意后next

     

     4.3选择安装目录,pack包目录后next

      4.4 填写信息后,可认真填也可随意写,然后点击next

      4.5 等待安装,然后点击next

     

     4.6安装完成后,点Finish

     4.7 上一步完成后,我们已经完成keil软件的安装,下面安装文件夹中的Keil.STM32F1xx_DFP.1.0.5,这是一个包含STM32F1芯片信息的包,双击点击Next即可

     4.8等待安装完成后点finish

     

     4.9 至此,软件全部安装完毕,下面进行注册。keil是外国软件,并非免费软件。

    注册方法:http://www.openedv.com/thread-69384-1-1.html

    3.2.2Keil介绍

    如下图所示:Keil界面,分为3个窗口:工程窗口(工程文件)、编辑窗口(代码编辑)和输出窗口(编译信息和下载信息)。在快捷工具栏有文件工具、编译快捷键、编辑工具、调试工具。

     此外,还有项目管理窗口(用于快速增删项目文件)和选项窗口(用于设置芯片、下载器,编译信息等),如下2图。

     

    3.2.3 使用keil新建工程与下载

     步骤1:新建工程文件夹,并在工程文件夹内添加如下图所示的文件夹和文件。Driver用于存放我们开发的驱动源文件,如串口驱动等;MAIN目录,存放Keil工程文件和STM配置相关的文件;OUTPUT存放Keil输出文件,如16进制Hex文件;ST存放STM32芯片库文件;CHANGLOG文件,用于填写该工程的版本,维护信息

     步骤2:在ST目录下添加以下文件:

     步骤3:在MAIN目录下添加以下文件:

     步骤4:工程文件准备完毕,现在打开Keil软件,选择Project->New uVersion Project...,然后打开MAIN目录,命名工程名为并点保存。

     步骤5:在新项目中添加加载工程文件,打开工程管理窗口如下图:

    步骤6:编辑工程管理窗口内容,如下图,最左侧栏是工程名,中间栏为文件夹栏,右侧栏是文件栏。编辑完成点击OK退出。

     配置完成后,工程窗口如下图所示。

    步骤7:打开工程选项窗口,选择Device->STMicroelectronics->STM32F1 Series->STM32F103->STM32F103VE,如下图。

    步骤8:继续在工程选项窗口,选择Output,点击Select Folder for Object并选择OUTPUT目录,勾选Greate HEX file,在如下图。

    步骤9:继续在工程选项窗口,选择Linker,在下拉列表中选择ST-Link Debugger,如下图。

    步骤10:继续在工程选项窗口,选择C/C++,选择include,添加头文件目录,如下图。

    步骤11:头文件目录如下图,这是告诉编译器在哪寻找头文件。

    步骤12:工程配置完成,我们可以点击编译,在输出窗口,查看工程编译是否正确,编译完成,使用ST-Link连接控制板,并给板子上电,点击下载就可以把程序下载进单片机了。我们备份该配置好原始工程,以后新项目就可以直接使用了。Keil的下载和调试,我们在后面示例中再做介绍。

  • 相关阅读:
    pymysql 查询大量数据导致内存使用过高优化方案
    docker-compose文件
    Flask关于request一些方法和属性的整理
    gitignore 文件中忽略项不起作用的解决方法
    Django 时区
    django-apscheduler定时任务
    结队-贪吃蛇游戏-项目进度
    团队-科学计算器-开发环境搭建过程
    《团队-科学计算器-设计文档》
    《结对-贪吃蛇-设计文档》
  • 原文地址:https://www.cnblogs.com/Baron-Lu/p/13275391.html
Copyright © 2011-2022 走看看