IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> keil MDK 新建项目教程 -> 正文阅读

[嵌入式]keil MDK 新建项目教程

前言

  • 由于好长一段时间没有用keil mdk 软件开发mcu软件了,最近在利用零闲时间来开发个低成本的平衡小车,一开始考虑采用esp32当做主控,测试发现,esp32没有正交编码接口,无法对直流有刷电机做闭环控制。想来想去,最后还是觉得采用stm32来做主控比较合适,主要是找到了几片stm32f103c8t6的存货。要知道今年stm32芯片价格翻了好几倍,买新的太不划算了。这也是一开始想用esp32来开发的原因,便宜。
  • stm32开发最好用的还是软件还是keil,这是对比了其他几种软件,keil启动编译速度都是比较强的。
  • 之前一直是在别的项目工程上面直接开发,全新新建一个工程发现还是有一些问题,现将整个新建工程及配置过程进行一个记录。

新建工程

1、新建工程目录

project->new porject 新建一个文件夹,并改为工程的名字,打开文件夹,输入要保存的文件名称-test。
在这里插入图片描述

2、选择对应的芯片型号

以st32f103c8t6为例
在这里插入图片描述

3、设置启动文件

在弹出的窗口中选择CMSIS->CORE,Device->Startup。仅选择这两项。之后点OK。

在这里插入图片描述
环境配置界面后续也可以在菜单栏点击绿色菱形按钮打开。
在这里插入图片描述

4、添加工程文件

右键target1 ->Add Group,然后鼠标左键长按点击new Group文件夹,修改名称。项目可以新建多个group,相当于给工程中的.c和.h文件分组。一般习惯建立3个文件夹
lib - 存放系统库文件
src - c存放 main.c文件
hardware - 存放自己写的硬件驱动文件,gpio.c adc.c等
在这里插入图片描述双击上一步新建的文件夹,添加文件
在这里插入图片描述
将其他项目用的工程文件拷贝到之前建立的stm32test工程目录,找到其中的src文件夹,添加c文件。
注意在keil project窗口,展现的文件夹层级不需要和实际工程文件里的文件层级对应
在这里插入图片描述
ctrl+a选择src文件夹下面的所有c文件,点击添加,添加完成后的界面如图。
在这里插入图片描述
依次添加project中src 和hartdware文件夹下的文件。如果没有就自己新建c文件后,再添加到对应的文件夹。本例中新建main.c gpio.c gpio.h。main.c直接放到stm32test主目录下,gpio.c gpio.h放到stm32test下面新建的hardware文件夹中。
在这里插入图片描述
到此项目文件添加完成。

5、添加需要包含的文件索引

按照下图添加文件索引,告诉软件,项目中所用的.h头文件是在什么位置,否则编译中会出现找不到头文件的现象。
在这里插入图片描述
添加宏定义 USE_STDPERIPH_DRIVER
在这里插入图片描述

6.编译

点击编译按钮,编译成功。项目新建完成后,后续可以继续编写其他c文件和h文件。
在这里插入图片描述

其他参数的配置

1、添加c文件的另外一种方式

上文说到是直接双击左侧project里面的文件夹进行c文件添加。实际上还有另一种方式来添加c文件。
按钮manage project items按钮,显示如下界面,可以很方面的针对每一个group添加对应的c文件,更加直接。两种方式没有本质区别,就看个人的使用习惯。
在这里插入图片描述

2 opitions配置

点击菜单栏上面的option按钮弹出如下界面,基本上针对项目的所有配置都在下面的界面中,先将一些常用的功能进行一些说明。
在这里插入图片描述

2.1 Target界面

该界面值得注意的是 ARM编译器选项,最新版keil V5.36默认的编译器是第6版,如果工程的库文件用的是旧版,需要按照如下将编译器选择为第5版,否则编译过程中会出现各种错误。(该如何配置才能选择第6版编译器,还未深入研究,欢迎各路大神指点一二)。

下面的ROM RAM基本不需要设置,这个选择了芯片之后默认的。如果用到BootLoader 那么app程序需要改下IROM1的起始地址。一般是是将内存进行如下分区:

名称地址大小
bootloader0x80000000x1000
APP10x80010000x5000
APP 20x80060000xA000

app1为运行分区,运行最新固件。app2为出厂分区,存放出厂的固件。如果当前程序是app1,就要将下面的IROM1 改为0x8001000 0x5000。

在这里插入图片描述

2.2 Output界面

该界面主要关注如下三个选项。

  • Debug information 如果不选,就无法进行在线debug。
  • Create HEX File 生成hex文件,如果要用其他工具烧写固件,就需要生成hex文件。
  • Browse Information 生成文件跳转信息,如果不选,则在程序中右键点击跳转到函数的定义处,是无效的。不选该选项的一个好处是加速编译,缩短编译时间,特别是针对比较大的项目可以很好的节省编译时间

在这里插入图片描述

2.3 Output界面

该界面的作用是,在编译过程中运行一些自定义的命令。
比如,在编译完成后自动生成 .bin文件,或者在编译之后运行删除编译中间文件等等命令。
在这里插入图片描述

2.3 C/C++界面

define 可以添加自定义的宏定义
optimization 编译优化选项 0 不优化,一般选择不优化。3最强优化,减小生成的二进制文件的大小。但可能导致部分变量被优化没了,程序运行不正常。不是高手就不要动优化编译选项。
Misc Controls 目前仅用到 --c99 ,可以运行c99标准,c99最显著的特征是可以对结构体进行指定初始化。这个功能可大幅增加结构体的易读性。
在这里插入图片描述

2.3 Debug界面

该界面主要是选择debug工具,一般stm32现在都用st-link,淘宝价格就20块钱,比jlink ulink jtag都便宜。
点击setting 按钮在flashdownload界面添加对应的芯片容量。这一步如果不选择会导致stlink烧写程序报错,一定要注意。

在这里插入图片描述

在debug的debug界面需要关注下图红框中的选项,如果连线无问题,确无法烧写程序。可以考虑调整connect 和reset选项。一个一个试,之前项目中就出现过这个情况,通过调整这两个选项解决了问题。
在这里插入图片描述

示例工程文件下载链接:
工程文件

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:52:08  更:2021-11-11 12:53:11 
 
开发: 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 9:44:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码