| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32单片机初学2-从Keil工程创建开始 -> 正文阅读 |
|
[嵌入式]STM32单片机初学2-从Keil工程创建开始 |
STM32开发环境有Keil,IAR,STM32CubeIDE等。本文将介绍在Keil环境下新建STM32工程,以供初学者参考学习。 一,Keil MDK安装 keil安装方法不详细介绍,按照步骤提示操作即可。目前最新版本是keil MDK5,也叫Keil uVision5。这里不建议软件汉化,因为汉化之后无法使用编码助手,非常不方便。 二,设备包的安装 不管在什么环境下开发单片机,新建工程时都会有一个选择设备的步骤,在这一步需要正确选择所使用的单片机型号,否则是无法下载程序的。由于keil还支持很多其他品牌的单片机,所以Keil软件本身是不带STM32的设备包(选择设备包时会发现没有设备可以选择,如下图),需要根据所使用的单片机型号自行安装设备包。 ?所以keil MDK软件安装完成之后,首先需要安装设备库。设备库在Keil官网可下载,这里我使用的是F103型,所以下载F1xx_DFP,每个设备库都有历史版本,可根据需要选择。 下载完成之后,打开Keil软件,点击设备包安装: ?进入设备安装窗口,然后菜单栏选择File-Import,然后选择刚才下载的pack文件,点击打开,等待Pack安装。 ?安装完成之后就可以看到STM32F1系列的单片机型号全在里面了(如下图)。实际上keil可以同时安装多个版本的设备包,但软件默认使用最新版本(如果想用旧版本,就点击Remove把新版本卸载)。这里我安装了2.4.0,2.3.0,2.2.0三个版本。之所以不用最新版本,是因为我的Keil版本与最新pack版本存在冲突,每次打开工程都会报错。实际情况因电脑而异,如果出现该情况,可尝试安装低版本Pack包。 安装完成之后关闭Pack Installer,会弹出窗口,提示是否需要需要重载设备,点击确定即可。 三,新建工程 新建工程步骤简单,在菜单栏选择Project -New Project,然后选择一个文件路径保存(最好不要带中文路径)。 ?然后选择所使用的的单片机型号,这里我使用的是STM32F103C8T6,所以选择STM32F103C8,然后点击OK即可(若设备安装成功之后仍没有设备可以选择,则需要重启软件,再次新建工程即可选择对应的设备了。)。 ? 选择设备之后,会弹出窗口,选择软件组成部分。这里的软件指的就是STM32的启动代码及标准外设库(例如ADC、GPIO、IIC等)。需要用到什么功能则将对应的库打钩添加进去。 对于初学者,建议将所有软件打勾,将所有软件添加进去,以免后期再去添加。后期需要添加的话则在该窗口选择即可。 为了方便后期的调试,在新建工程时应将各个功能的程序分类放置。例如,系统程序、外设库、个人程序分别放在单独的文件夹里。不同的功能也写在单独的.C程序中(如下可供参考)。 ?项目开发时,常常需要对项目内容进行增减,就需要用到项目管理器(打开方式如下)。 ?项目管理器,可以对每个文件夹里的内容及文件夹进行增删、修改、重命名等操作。不建议在电脑文件管理器里修改或者删除文件或者文件夹,这样做软件会报错。 完成上面一步后,还需要设置编译器。如下图在编译选项中点击“C/C++”,在Define中粘贴这句:USE_STDPERIPH_DRIVER,STM32F10X_MD ,然后在Include Paths中将工程中所有的文件夹路径一一添加进去。否则在头文件使用Define会报错。 ?在编译选项中还需要设置一个仿真器,如下。 ?使用的何种仿真器就选择什么,这里我使用的是ST-LInk。通过ST-LInk就可以通过软件直接将编译(F7)好的程序下载(F8)至单片机以及在线调试(Ctrl+F5)。 四,新建.C文件及.h头文件 工程创建之后,就可以开始写程序了。为了构建自己的工程框架,需要将不同的功能放在不同的.C程序中。在需要新建项目的文件夹上右击,选择“Add New item to Group 'xxxx'”. ?然后选择.C文件类型,命名后保存即可。 ?然后项目文件夹中就出现了刚才的.c文件。Keil中程序中如果想要调用其他.c文件中的程序,还需要新建头文件。 假设我在刚才新建FirstItem的文件中写了两个函数ADD()和SUB()。 ?如果我在主函数中直接调用这两个函数,会有警告,虽然可以通过编译,但是并不会把这两个子函数编译进去,所以单片机也就不会执行这个子函数。这就是因为没有头文件的原因。 ?创建头文件:与.c文件相同的创建方式相同,选择.h文件类型,名称一般命名成与.c文件相同的名字。 ?创建好了之后,需要在项目管理器中将刚才的.h文件添加到工程中。 在弹出的窗口中选择.h文件类型,然后选中创建的.h文件,添加即可。 ?添加之后,FirstItem.h就能在工程中看到了。我们打开该文件 ? ?然后在空白文件中写入程序 #ifndef _FIRSTITEM_H 函数1(); 函数2(); #endif 里面的函数即FirstItem.c中声明的函数。如下图所示。 ?这样,我想在哪个程序里调用FistItem里的函数(如ADD、SUB),只要在程序前#include <FistItem.h>即可,然后再调用ADD,SUB函数就可以了。 本文仅供参考,实际操作会有差异,如有错误,欢迎指出 ? ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:24:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |