嵌入式开发二:搭建开发环境

news2024/12/29 9:51:36

        工欲善其事必先利其器,本节我们从嵌入式开发的搭建环境开始学习,掌握最基本的搭建环境技能,了解每一部分的作用,以及如何使用是关键所在!

目录

一、常用开发工具简介

二、如何安装KEIL5(MDK)

2.1认识MDK-ARM

2.2 MDK-ARM的安装及注册

2.2.0 温馨提示

2.2.1 MDK-ARM软件的安装

2.2.2 MDK-ARM软件的注册

2.2.3 芯片包的安装 

三、仿真器DAP驱动安装

四、安装CH340 USB虚拟串口驱动

五、安装串口调试助手XCOM

六、总结


一、常用开发工具简介

       我们开发 STM32 需要用到一些开发工具,如:IDE、仿真器、串口调试助手等。常见的工 具如表 3.1.1 所示:

      表中加粗部分是我开发使用的 STM32开发工具,即IDE推荐使用MDK、仿真器推荐使用DAP、串口调试助手推荐使用XCOM, 接下来我们介绍这几个软件的安装。

二、如何安装KEIL5(MDK)

2.1认识MDK-ARM

         Keil MDK-ARM是由美国Keil公司开发的(现已被ARM公司收购)一款集成开发环境(IDE),专门用于嵌入式系统开发。它支持多种微处理器架构和编程语言,包括ARM Cortex-M0、M3、M4等系列微控制器。

        Keil MDK-ARM提供了完整的项目管理、调试、性能优化和测试工具,并且集成了ARM编译器、调试器和IDE,使得开发者可以在一个环境中完成整个开发流程。此外,Keil MDK-ARM还提供了许多优秀的特性,如:

        1、支持多种编程语言:Keil MDK-ARM支持C、C++、Assembly等多种编程语言,可以满足不同开发者的需求。

        2、代码生成工具:Keil MDK-ARM自带了Code Generator,可以帮助开发者快速生成代码框架和驱动程序,提高开发效率。

        3、简单易用的调试器:Keil MDK-ARM自带了uVision Debugger,可以帮助开发者实时监测代码执行状态、内存使用情况等,提高调试效率。

        4、集成的版本控制:Keil MDK-ARM集成了Version Control System(VCS),可以帮助开发者更好地管理代码版本和变更记录。

        5、完善的文档和示例代码:Keil MDK-ARM提供了丰富的开发文档和示例代码,帮助开发者更快速地上手。

        总的来说,Keil MDK-ARM是一款功能强大的开发工具,适用于各种规模的项目和不同层次的开发人员。

主要有以下四个安装包: 

2.2 MDK-ARM的安装及注册

MDK5 的安装分为两步:1,安装 MDK5;2,安装芯片支持包。

注意:MDK 是一款付费集成开发环境,可进行破解,使用专业版。

(1)MDK 软件下载地址:https://www.keil.com/download/product,目前最新版本是 MDK5.36。

(2)芯片支持包下载地址:https://www.keil.com/dd2/pack,STM32F4 支持包最新版本是 2.14.0。

2.2.0 温馨提示

1、安装路径不能带中文,必须是英文路径

2、安装目录不能跟 51 的 KEIL 或者 KEIL4 冲突,三者目录必须分开

3、KEIL5 的安装比起 KEIL4 多了一个步骤,必须添加 MCU 库,不然没法使用。

4、如果使用的时候出现莫名其妙的错误,先百度查找解决方法,莫乱阵脚。

2.2.1 MDK-ARM软件的安装

        在编写代码开发STM32时需要先安装MDK软件,STM32常用开发软件是Keil,本流程中使用的是Keil_5.37版本,安装完成后可以在工具栏help中的about u Vision 选项卡中查看版本信息。

第一步:获取KEIL软件安装包

      要想获得 KEIL5 的安装包,可以到 KEIL 的官网下载,具体见图 1-2。

第二步:开始安装KEIL5

     双击 KEIL5 安装包,开始安装,next。

Agree,Next。 

      选择安装路径,路径不能带中文,next。需要提醒一下大家,在选择安装路径的时候,强烈建议大家将 Pack 的路径和 Core 的路径放在一个位置。这里请一定安装到C盘,否则会出现各种问题。请保持如图路径。(可更改路径到D盘,最好放在c盘,安装路径不能出现中文)

C:\Keil_v5

C:\Keil_v5\ARM\PACK

 

填写用户信息,全部填空格(键盘的 space 键)即可,不要出现中文!next。

 

Finish,安装完毕。 

 

安装完成后,在我们电脑桌面会显示 MDK5 图标,如图 3.2.3 所示; 桌面显示 MDK5 图标。

单击【Finis】完成按钮后,或弹出器件安装对话框,这里可以直接退出器件安装界面,用提供的芯片包安装即可。

2.2.2 MDK-ARM软件的注册

     MDK 是一款付费集成开发环境,因此,如果我们要使用,必须购买或者破解,这里介绍如何破解专业版的KEIL5.主要步骤如下:

第一步:点击安装好的工具Keil uViSion5以管理员身份运行。点击界面左上角FILE选项,如下图所示:

第二步:点击file/LIcense Management得到如下界面:

 第三步:关闭防火墙等等杀毒软件。(破解软件会被识别为病毒, 遭到攻击)

第四步:点击我们提供的第二个软件 keygen.exe.得到如下界面 注意:如果,这个软件找不到,消失了,说明你电脑的杀毒软件很强大,把这个 软件删除了,关闭了防火墙和杀毒软件,重新解压或者下载获取这个软件。

第五步:请把第二步骤复制CID粘贴到这里。 

target:选择arm。 检查是否选择为professional。 点击 Generate. 等待界面生成license。生成license的位置如下图圈画位置。

 第六步:复制第五步骤的license粘贴到第二步骤的new license ID code. 并点击add LIC.

出现上面黄色方框中的内容,说明破解专业版成功,该软件便可以正常使用。 

2.2.3 芯片包的安装 

    安装好 MDK-ARM 软件之后,不能直接使用该软件来编译工程,这是因为每一种嵌入式处理器都有其对应的底层驱动,而芯片的安装包中就包含其中的驱动当软件安装完成时,并不会自行安装芯片包,由于芯片的种类很多,因此需要根据自己的需求来安装芯片的安装包。

接下来介绍如何安装芯片包。 把下面弹出的界面关掉,我们直接去 keil 的官网下载http://www.keil.com/dd2/pack/,或者 直接用我们下载好的包。 

在官网中找到 STM32F1、STM32F4、STM32F7 这 3 个系列的包下载到本地电脑,具 体下载哪个系列的根据你使用的芯片型号下载即可,这里我展示使用的 F1/4/7 这三个系列的包,F1 代表 M3,F4 代表 M4,F7 代表 M7。

把下载好的包双击安装即可,安装路径选择跟 KEIL5 一样的安装路径,安装成功之后, 在 KEIL5 的 Pack Installer 中就可以看到我们安装的包,以后我们新建工程的时候,就有单 片机的型号可选。 

在这里,我直接安装提供好的芯片包。直接点击我们提供 Keil.STM32F4xx_DFP.1.0.8.pack鼠标双击直接打开安装界面,在弹出的对话框中选择【Next >>】按钮。

 

  等待芯片包安装完成。

 

芯片包安装完成后点击【Finis】按钮结束F1系列芯片包的安装,如图所示

恭喜你。至此,嵌入式编译工具安装完毕 !要特别注意的是 KEIL5 的安装目录不能跟其他版本的 KEIL 冲突,如果冲突了则卸载后重新安装。最后还要记得安装 STM32 芯片包。

三、仿真器DAP驱动安装

      几乎所有 JTAG/SWD 仿真器的使用都有下面三个方面的知识: 1、驱动的安装。 2、编程软件(MDK)配置。 3、固件升级方法 。如果使用 DAP 仿真器是不用安装驱动的,因为 CMSIS DAP 是 ARM 官方推出的开源仿真器,具有免驱的特点。STM32 可以通过 DAP、ST LINK、JLINK 等仿真调试器进行程序下载和仿真,我们默认推荐使用:DAP 仿真器(CMSIS-DAP Debugger),DAP 仿真器在 MDK 下是免驱动的(无需安装 驱动),即插即用,非常方便。 正点原子提供两种规格的 DAP 仿真器:普速版本 DAP(ATK-DAP)和高速版本(ATK-HSDAP),这两个版本 DAP 使用完全一样,只是高速版本速度更快,大家根据需要选择即可。

四、安装CH340 USB虚拟串口驱动

     安装 CH340 USB 虚拟串口驱动,以便我们使用电脑通过 USB 和 STM32 进行串口通信。 开发板使用的 USB 虚拟串口芯片是 CH341C。

双击 CH341SER.EXE 进行安装,安装完成后,如图所示:

在驱动安装成功之后,将开发板的 USB_UART 接口通过 USB 连接到电脑,此时电脑就会 自动给其安装驱动了。在安装完成之后,可以在电脑的设备管理器里面找到 USB 串口(如果找 不到,则重启下电脑),如图 所示: 

在图 中可以看到,我们的 USB 虚拟串口被识别为 COM2,这里需要注意的是:不同 电脑可能不一样,你的可能是 COM4、COM5 等,但是 USB-SERIAL CH340,这个一定是一样 的。如果没找到 USB 串口,则有可能是你安装有误,或者系统不兼容。 在安装完 CH340 USB 虚拟串口以后,我们就可以使用串口调试助手,比如 XCOM,和我们的开发板,通过串口进行通信了.

为什么要安装CH340 USB虚拟串口驱动?

 

 

五、安装串口调试助手XCOM

       串口助手是一种用于测试和调试串口通信的工具。它可以通过串口与外部设备进行通信,并提供了界面来监视和控制串口数据的发送和接收。

串口通信调试:串口助手可以帮助你验证串口通信是否正常工作。你可以使用串口助手打开串口并发送指令或数据给外部设备,然后观察外部设备的回应,以验证通信是否成功、数据是否正确交互。如果出现问题,你可以通过串口助手查看发送和接收的数据,帮助发现并排除故障。

数据监测:串口助手可以实时显示串口接收到的数据,方便你监测外部设备发送的数据。你可以通过串口助手查看数据的内容、格式和频率,以确保通信过程中的数据流是符合要求的。

数据发送:串口助手允许你向外部设备发送自定义的指令或数据。你可以在串口助手界面输入要发送的数据,并通过串口发送给外部设备。这对于测试设备响应、配置设备参数等操作非常有用。

     简单来串口调试助手说其实就是用于上位机和下位机通信用的一个桥梁软件,功能主要有两个:

1.人工发送数据给单片机处理,即通过串口调试助手的下方窗口编辑数据,然后点击发送按钮,就能发送数据给单片机;
2.接受单片机发送的数据显示给你看,即通过串口调试助手上方窗口,将单片机发回给上位机的数据进行显示;

安装过程比较简单,打开点击安装即可,卸载一样,安装成功会有提示。

 

 

       关于串口调试助手,还应知道:发送英文字符需要用一个字符即8位,发送汉字需要两个字符即16位,如上图,发送汉字“宋”实际是发送“CB(1100 1011)CE(1100 1110)”而发送英文字符S实际是发送“53(0101 0011)”,本质上没有太大区别;勾选了下方“发送新行”后,XCOM就会再你输入的需要发送的数据后自动加上一个回车(0X0D+0X0A),如果不勾选则我们在手动输入完“宋S”后还需敲一个回车键只有这样点击发送后,调试助手上方窗体才能将其显示,这是因为我们在程序的串口中断中自定义了一个数据接收协议,即只有当接受的数据以回车结尾(0X0D+0X0A),串口才认可数据接受完毕。

注意:重定向的printf()函数本质上还是通过USART_SendData()向上位机发送数据,且此处发送的“\r\n”与中断函数里的需要作为接受完成标志位的“\r\n”(0X0D+0X0A),只是单纯的表示换行的转义字符,电脑上位机接收到后会将光标下移两行,视觉上就是空一行显示在串口调试助手上。

USART-FLAG-TXE与USART-FLAG-TC标志位
我觉得这两个标志位的使用应当严格区分开,当个附加知识记录一下:

USART-FLAG-TXE发送缓冲区空标志:说明可以往数据寄存器写入数据了,但并不代码数据发送完成了。

USART-FLAG-TC发送完成标志:这个才是代表USART在缓冲区的数据发送完成了,即从机接收到了数据。

这两个标志的区别在于:它们分别表示数据在发送过程中,在两个不同的阶段中的完成情况.TXE表示数据被从发送缓冲区中取走,转移到的移位寄存器中,此时发送缓冲是空的,可以向其中补充新的数据了。而 TC则表示最后放入发送缓冲区的数据已经完成了从移位寄存器向发送信号线Tx上的转移。所以,判定数据最终发送完成的标志是TC,而不是IXE.

六、总结

       至此,STM32 的开发环境就搭建完成了,关于如何使用串口助手与单片机进行通信,主要在后面串口通信进行详细分析与总结!

     以上便是嵌入式开发环境搭建的全部内容,后面会逐步介绍每个外设的固件库使用方法,如有兴趣,感谢点赞、关注、收藏,若有不正地方,还请各位大佬多多指教!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1634062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring基于AspectJ实现验签切点

文章目录 引言I AspectJ 依赖II 验签切点2.1 匹配方法执行的连接点2.2 设置带有CustomAnnotation注解的方法为切点III 案例:验签2.1 用法2.2 定义注解2.3 定义切面和切点引言 需求:验签 实现:基于AspectJ实现验签切点 I AspectJ 依赖 AspectJ 是一个基于 Java 语言的 AOP …

windos蓝屏分析工具

BlueScreenView中文版 - Windows蓝屏分析工具 BlueScreenView中文版是一款非常方便的蓝屏诊断工具。它可以帮助您快速定位蓝屏问题,并提供详细的故障转储信息。该软件可以自动扫描您机器上的minidump文件夹,同时还支持根据路径查找蓝屏文件。 windos发…

Coursera: An Introduction to American Law 学习笔记 Week 06: Civil Procedure (完结)

An Introduction to American Law Course Certificate Course Introduction 本文是 https://www.coursera.org/programs/career-training-for-nevadans-k7yhc/learn/american-law 这门课的学习笔记。 文章目录 An Introduction to American LawInstructors Week 06: Civil Pro…

Flink checkpoint 源码分析

序言 最近因为工作需要在阅读flink checkpoint处理机制,学习的过程中记录下来,并分享给大家。也算是学习并记录。 目前公司使用的flink版本为1.11。因此以下的分析都是基于1.11版本来的。 在分享前可以简单对flink checkpoint机制做一个大致的了解。 …

docker学习笔记3:VmWare CentOS7安装与静态ip配置

文章目录 一、安装CentOS71、下载centos镜像2、安装二、设置静态ip三、xshell连接centos本专栏的docker环境是在centos7里安装,因此首先需要会安装centos虚拟机。 本篇博客介绍如何在vm虚拟机里安装centos7。 一、安装CentOS7 1、下载centos镜像 推荐清华源,下载如下版本 …

【C++】学习笔记——string_1

文章目录 四、模板初阶2. 类模板 五、STL简介1. 什么是STL2. STL的六大组件3. 如何学习STL 六、string类1. string类对象的容量操作 未完待续 四、模板初阶 2. 类模板 函数模板就是:模板 函数;类模板就是:模板 类。和函数模板用法基本相同…

Kafka客户端工具:Offset Explorer 使用指南

Kafka作为一个分布式流处理平台,在大数据处理和实时数据流应用中扮演着至关重要的角色。管理Kafka的topics及其offsets对于维护系统稳定性和数据一致性至关重要。Offset Explorer是一个强大的桌面应用程序,它使得管理和监控Kafka集群变得简单直观。本文将…

数组 Leetcode 704 二分查找/Leetcode 59 螺旋矩阵/Leetcode 203移除链表元素

数组 Leetcode 704 二分查找 Leetcode 704 学习记录自代码随想录 二分法模板记忆&#xff0c;数值分析中牛顿迭代法 class Solution { public:int search(vector<int>& nums, int target) {int left 0, right nums.size()-1;// 是否需要等于号&#xff0c;假设…

verilog分析task的接口设计,证明这种写法:assign {a,b,c,d} = links;

verilog分析task的接口设计&#xff0c;证明这种写法&#xff1a;assign {a,b,c,d} links; 1&#xff0c;task在状态机中的使用好处&#xff1a;2&#xff0c;RTL设计3&#xff0c;测试testbench4&#xff0c;波形分析&#xff0c;正确&#xff01; 参考文献&#xff1a; 1&am…

C++初阶学习第四弹——类与对象(中)——刨析类与对象的核心点

类与对象&#xff08;上&#xff09;&#xff1a;C初阶学习第三弹——类与对象&#xff08;上&#xff09;——初始类与对象-CSDN博客 前言&#xff1a; 在前面文章中&#xff0c;我们已经讲了类与对象的思想和类与对象的一些基本操作&#xff0c;接下来这篇文章我们将讲解以下…

NLP(10)--TFIDF优劣势及其应用Demo

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 TF*IDF&#xff1a; 优势&#xff1a; 可解释性好 可以清晰地看到关键词 即使预测结果出错&#xff0c;也很容易找到原因 计算速度快 分词本身占耗时最多&#xff0c;其余为简单统计计算 对标注数据依赖小 可以使用无标注语…

超级数据查看器 app v2.0发布 欢迎下载使用

超级数据查看器 app v2.0发布 欢迎下载使用 感谢大家的支持 &#xff1a;&#xff09; 点击访问APP下载界面 跳转 腾讯应用宝 简介 超级数据查看器软件&#xff08;简称超级数据查看器&#xff09;是一个提供数据查询和数据管理的手机APP&#xff0c;能导入文本数据&…

ubuntu neo4j 下载与配置(一)

neo4j 官方下载页面 https://neo4j.com/deployment-center/#community 进入页面之后&#xff0c;往下滑 咱们在下载neo4j时&#xff0c;官方可能要咱们填写一下个人信息&#xff0c;比如&#xff1a;姓名组织结构邮箱等&#xff1a; 咱们可以观察一下&#xff0c;ne4j的下载链…

大数据学习笔记14-Hive基础2

一、数据字段类型 数据类型 &#xff1a;LanguageManual Types - Apache Hive - Apache Software Foundation 基本数据类型 数值相关类型 整数 tinyint smallint int bigint 小数 float double decimal 精度最高 日期类型 date 日期 timestamps 日期时间 字符串类型 s…

OpenAI 新推出 AI 问答搜索引擎——SearchGPT 震撼登场

您的浏览器不支持 video 标签。 OpenAI-SearchGPT 近日&#xff0c;OpenAI 曝光了自己的一款令人瞩目的 AI 问答搜索引擎——SearchGPT。这款搜索引擎带来了全新的搜索体验&#xff0c;给整个行业带来了巨大的压力。 SearchGPT 支持多种强大的功能。首先&#xff0c;它能够通过…

STM32CubeMX+MDK通过I2S接口进行音频输入输出(全双工读写一个DMA回调)续-音质问题解决总结

一、前言 之前进行了STM32CubeMXMDK通过I2S接口进行音频输入输出&#xff08;全双工读写一个DMA回调&#xff09;的研究总结&#xff1a; https://juejin.cn/post/7339016190612881408#heading-34 后续音质问题解决了&#xff0c;目前测试下来48khz的双声道使用效果很好&…

mySQL商城项目实战 (终)(全部表)(1-88张)

本章无sql语句&#xff0c;直接放转出的sql文件。 88张表结果如图! 资源在已经与文章绑定&#xff0c; 在navicat工具中&#xff0c;执行以下步骤 在新建的数据库中右键,点击【运行sql文件】&#xff0c;运行绑定的资源&#xff0c;之后您就可以在您的navicat中看到我建好的8…

Python数据分析大作业(ARIMA 自回归积分滑动平均模型) 4000+字 图文分析文档 销售价格库存分析+完整python代码

资源地址&#xff1a;Python数据分析大作业 4000字 图文分析文档 销售分析 完整python代码 完整代码分析 ​ 同时销售量后1000的sku品类占比中&#xff08;不畅销产品&#xff09;如上&#xff0c;精品类产品占比第一&#xff0c;达到66.7%&#xff0c;其次是香化类产品&#x…

在Android中,如何通过Kotlin协程处理多个API调用

在Android中&#xff0c;如何通过Kotlin协程处理多个API调用 在Android开发中&#xff0c;如何使用Kotlin协程处理多个API调用的示例呢&#xff1f;假设我们已经对Kotlin协程有了一定的了解&#xff0c;包括定义、简单用例和示例等。现在&#xff0c;让我们来看一些真实的Andr…

AD21技巧[更加便捷的DRC检查][把线框转成Keep-Out Layer板框]

AD10用了好久,之所以换到AD21并不是因为AD10功能不够强,而且因为别人用高版本设计的软件到我这里竟然打不开了,这个是我不能够接受的,所以开始使用AD21,使用之后发现AD21好多使用习惯和AD10有很大的区别! 更加便捷的DRC检查 本文摘录于&#xff1a;https://www.cnblogs.com/U…