工欲善其事必先利其器,本节我们从嵌入式开发的搭建环境开始学习,掌握最基本的搭建环境技能,了解每一部分的作用,以及如何使用是关键所在!
目录
一、常用开发工具简介
二、如何安装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 的开发环境就搭建完成了,关于如何使用串口助手与单片机进行通信,主要在后面串口通信进行详细分析与总结!
以上便是嵌入式开发环境搭建的全部内容,后面会逐步介绍每个外设的固件库使用方法,如有兴趣,感谢点赞、关注、收藏,若有不正地方,还请各位大佬多多指教!