![基于ARM的小功率电动汽车控制器开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/479/32856479/b_32856479.jpg)
2.3 编辑工程文件
新建立完成空白工程文件“STM32-DEMO”后,Keil μVision的运行界面如图2-12所示。在左侧显示的工程信息中,缺省的设备名称为“Target 1”,并包含一个名称为“Source Group 1”的子文件夹。单击软件“File”菜单的“Save All”子项,保存工程所有信息。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0020_0001.jpg?sign=1738853384-paqawBBSMsXog6EocuLvm7sYNsT4pMtI-0-142dfa483374c929a14b7a16fc417c93)
图2-12 在Keil μVision中建立的空白工程
利用 Windows操作系统自带的资源管理器或者类似的软件工具查看生成的文件,如图2-13所示。其中“STM32-DEMO.uvproj”为工程文件,其余文件可不予关注。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0020_0002.jpg?sign=1738853384-R5dnkyPANuWOO5ONl6PFfr2cN6EHC1Zl-0-53133f83394cd7d1a7dda27928c2d290)
图2-13 空白工程及对应的资源文件
在工程“STM32-DEMO”所在的目录下新建3个文件夹,名称分别为“USER”、“LIB”和“OUTPUT”。3个文件夹分别用来保存用户提供的文件、芯片库文件、以及Keil μVision生成的文件,如图2-14所示。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0021_0001.jpg?sign=1738853384-uRgR6CViOUw8ihPrjxOSCzp5ZLyp0Qdb-0-73b943547e5fb57c6ae04c87a0039b1a)
图2-14 在工程目录中增加3个文件夹及相关文件
在“USER”文件夹中新建一个 C语言文件 main.c,并编写代码(表2-1),该代码调用库函数初始化芯片后,进入一个无穷循环。
表2-1 包含芯片初始化的最小程序
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0021_0002.jpg?sign=1738853384-K4BgIwex3wnXeuCvU1cI5YiTzJV2fbFz-0-dc21e470f2129fbf78eb92aeecbd57ea)
在LIB文件中加入如表2-2所示的芯片库文件,共有53个。文件可以从芯片制造商的官方网站www.st.com中下载。
表2-2 芯片库文件
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0022_0001.jpg?sign=1738853384-mMLZLI2jBVLrSpiKNmAQmZXUYfmBR7VI-0-6fd93f22a0c776ebb6ddf480b8face15)
续表
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0023_0001.jpg?sign=1738853384-FpmLw5lRcn8eiXhT0PAbOpJAKhj2HMn2-0-83a32527d319b477e665a9c563a12f76)
续表
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0024_0001.jpg?sign=1738853384-7RlpqnBZlwNY8Hj7R6p3UKzJan2oFSu1-0-b91f8f6eba8b69cf948671b1ac247e6e)
文件夹“OUTPUT”用于存储软件Keil μVision生成的文件。
在Keil μVision中,右击左侧设备“Target 1”,在弹出的菜单中选择“Manage Components...”,如图2-15所示,将弹出组件管理对话框。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0024_0002.jpg?sign=1738853384-tiWpcxEjRpnHmM3sOkffyqmmhSWV0x93-0-73c75bfa17a39e6407f2d6eada610d70)
图2-15 管理工程文件组件
在组件管理对话框的第1列中,修改工程目标为“STM32-DEMO”,并单击“Set as Current Target”。在第2列中新建3个条目,名称分别为“USER”,“LIB”和“OUTPUT”。之后在第2列中单击条目“USER”,然后单击第3列下方的“Add Files”按钮,选择工程文件目录下“USER”文件夹中的全部文件并添加。
按照同样的方式,第2列中单击条目“LIB”,然后单击第3列下方的“Add Files”按钮,选择工程文件目录下“USER”文件夹中的全部文件并添加。配置完成后的界面如图2-16所示,单击“OK”按钮后关闭对话框。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0025_0001.jpg?sign=1738853384-WaRa2x435lMof6UBkGf468UNAOp92Jsv-0-d161b9fcfafb8a3902caa356268c37de)
图2-16 组件管理对话框
为了使用程序可以正确找到库文件,在Keil μVision左侧的项目栏中右键单击“STM32-DEMO”,之后在弹出的菜单中选择“Options for Target‘STM32-DEMO'...”,如图2-17所示,弹出的对话框如图2-18所示。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0026_0001.jpg?sign=1738853384-0f0YIMXLruvznf7zfuLORVXbYFsg4FjA-0-1072e8d1de1f24b7eef485a3daebde6e)
图2-17 启动修改目标选项的对话框
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0026_0002.jpg?sign=1738853384-IVG537zAIAGCYwY1T2ZtBmp7Zn87J1BL-0-8db07d0821411f648923d315f543ee3a)
图2-18 设置Target标签页的参数
在图2-18中,选中“Use MicroLIB”复选框,然后切换到“Output”标签页,如图2-19所示。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0027_0001.jpg?sign=1738853384-qpkb241JkHZsBzVPI3JuQG4jM5GHgJ8y-0-60572ed72882706fa2d89fa075b17030)
图2-19 设置Output标签页的参数
在图2-19中,单击“Select Folder for Objects...”,选择工程文件夹中的“OUTPUT”目录。选中“Create HEX File”复选框,切换到“C/C ++ ”标签页,如图2-20所示。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0027_0002.jpg?sign=1738853384-lyYFHT5segm39mzFWeEnRQc4DmktLqyj-0-ad212c010777149434ff3bf1e785c365)
图2-20 设置C/C + + 标签页的参数
在图2-20中,添加预定义的项“USE_STDPERIPH_DRIVER”。并且在“Include Paths”文本框中,添加工程目录中的“LIB”文件夹,完成后即可以在“Compiler control string”文本框中看到“.\LIB”字符串。
单击不同的标签页,切换到“Debug”标签页,如图2-21所示。选择使用J-LINK仿真器“Cortex-M/R J-LINK/J-Trace”。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0028_0001.jpg?sign=1738853384-tKqz7XaqI7rw8JnQ7o2uSgeJfbgeqX62-0-a49fb74c7ec3041c57ef29d6001e29cc)
图2-21 设置Debug标签页的参数
在图2-21中单击设置仿真器参数的按钮“Settings”,将弹出设置仿真器参数的对话框,如图2-22所示。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0029_0001.jpg?sign=1738853384-LSW4mP1yVBBVq4Q5T5sPwww3zFxzQSrd-0-1cb197fcb686cf8c223adc8bc6a52b14)
图2-22 设置仿真器的参数
在设置仿真器参数的对话框中,选中“Reset and Run”,则程序烧写入芯片后会自动运行。单击“Add”按钮,添加适合于芯片的烧写算法,选择适用于STM32F103VBT7的烧写算法,如图2-23所示。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0029_0002.jpg?sign=1738853384-AiMbC9BheQdiKNEesrziXgN8NLDnBfHL-0-0a4cd522140057fd8187c8104c5df130)
图2-23 选择仿真器使用的烧写算法的对话框
由于项目中使用的芯片是 STM32F103VBT7,芯片内的FLASH存储容量为128 k,所以选择“STM32F10x Med-density Flash”。
在设置完成“Debug”标签页之后,切换到“Utilities”标签页,选择使用J-LINK仿真器“Cortex-M/R J-LINK/J-Trace”,如图2-24所示。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0030_0001.jpg?sign=1738853384-pYtgec1cqEskjAx5P0BTBcvr1J4TbXlV-0-b2fc85947ebcdeba4056686c22ac8a2e)
图2-24 设置Utilities标签页的参数
设置完成参数后,在软件用户界面左侧的项目栏中双击“main.c”文件,程序界面如图2-25所示,可以对 main.c文件进行编辑和修改。单击工具栏中的“Rebuild”按钮,可以对工程中所有代码进行编译,结果将显示在软件界面的下方。当代码正确且编译、链接完成后,将产生可供烧写的文件。
![](https://epubservercos.yuewen.com/C012CF/17640080406767806/epubprivate/OEBPS/Images/figure_0030_0002.jpg?sign=1738853384-zGm9oDIzHdPQUg2Jl6Vxyy3Rfz54YFlP-0-256be926696e694ff5d3468c7d3628a3)
图2-25 编辑文件代码并编译程序