正在学习stm32,谁可以告诉我怎么可以用函数库创建一个工程啊,详细点!谢谢了。。。
发布网友
发布时间:2022-05-16 07:11
我来回答
共4个回答
热心网友
时间:2023-10-14 19:45
你是问有官方固件库创建工程吧?我这里给你说说MDK的创建方法,如果你用的时IAR环境也差不多。
1.解压stm32f10x_stdperiph_lib.zip 可以从ST官方网站免费下载。最新标准库版本为 3.5.0
2.创建一个Demo文件夹
2.1 新建子文件夹User,用于存放用户源程序
2.2 新建子文件夹Project,用户KEIL工程文件
2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。
3. 复制源代码到Demo文件夹
3.1 将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2Libraries文件整体复制到Demo文件夹下。这就是ST的标准库,是以源代码形式提供的。
3.2 将库中的演示代码IOToggle中的文件复制到Demo\User文件夹.
4. 新建一个Keil MDK工程
4.1 启动Keil MDK,点击菜单 New uVision Project,然后按向导进行操作
4.2 选择CPU类型为 STM32F103ZE (这是安富莱STM32开发板采用CPU类型)
4.3 当提示是否复制启动代码时,请选择否。(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)
4.4 根据自己的需要修改Target名字。(名字任意)
4.5 为了便于代码管理,在这个Project下创建几个Group (名字可以任意)
User : 存放用户自己写的源代码
RVMDK : 存放启动文件(汇编文件)
StdPeriph_Driver : 存放ST标准库文件
CMSIS : 存放CMSIS接口文件(这也是库的一部分)
4.6 创建好Group后,我们开始依次添加文件。
5. 修改源代码。我们将修改main.c 文件,换成我们自己跑马灯程序。
6. 配置工程, 点击“Options”按钮
6.1 切换到Output。
选择Object文件夹。
在Create Hex File 前打钩。
6.2 切换带Listing。
选择Listings文件夹
6.3 切换到C/C++
添加两个预编译宏 STM32F10X_HD, USE_STDPERIPH_DRIVER (这是ST库用到了这两个宏)
修改Includes路径
6.4 切换到Debug
选择硬件调试器(缺省是软件仿真),我们选择Cortex-M3 J-Link调试器
再 Run to main前打钩
6.4 切换到Utilities
选额调试器类型,我们选择Cortex-M3 J-Link
点settings按钮,添加Flash编程算法,我们选择STM32高密度器件,Flash容量512K字节
7. 配置工程完毕。下面开始编译。
8. 编译OK,开始调试。
9. 教程结束。
讲得比较清楚了吧 ,还有疑问可以问我。或者联系我,我一步一步教你。
热心网友
时间:2023-10-14 19:46
函数库只不过是意法半导体公司的开发人员为了缩短程序员的工作量而开发的对STM32内部寄存器配置的一个底层驱动库,使用函数库是主要是为了缩短开发周期,初学一般可以选择这种方式,比较容易上手,不过上手之后应该自己去研究一下STM32内部寄存器的配置,比如位段等。
使用函数库创建工程,最简单的就是把.H和.c文件添加到工程中,然后自己写MAIN.c以及修改中断处理函数stm32f10x_it.c。我觉得你的问题不是如何建立工程,而是如何让一个STM32跑起来,由于STM32与51差别甚大,上电后需要对时钟以及片上外设进行初始化的配置,还有中断向量表的映射等。可以看看STM32不完全手册V2.0等教程。
热心网友
时间:2023-10-14 19:46
创建工程。。不是用函数库啊……函数库是写程序用的……
给你一个参考吧~~那个写的很详细~~打字的话要好多好多好多的……
http://wenku.baidu.com/view/6b64c4ff04a1b0717fd5dd8f.html
参考资料:http://wenku.baidu.com/view/6b64c4ff04a1b0717fd5dd8f.html
热心网友
时间:2023-10-14 19:47
其实用库函数很简单的,只需将你认为有用的库函数文件包括“C"和对应的”H"文件加入入你的工程中。你在设计MAIN函数时直接调用就行了,无需在主函数中声明。有关函数及其参数的声明在“H"文件中,函数体的书写在"C"文件中。你具体要用哪些函数你要仔细的阅读有关的函数。我用的时候一般是将对应的文件找开,将函数名我参数直接复制过去。