tag 标签: 标准库

相关帖子
相关博文
  • 热度 22
    2015-12-19 18:53
    4654 次阅读|
    2 个评论
            有阵子没摸单片机了,Keil版本也已经发霉了。双十一的时候买了块STM32F429 Disco(这是LQFP封装的,469是BGA的),想试试M4的FPU。看到iar for arm 有了新版本,我果断下载了最新的iar试用了一下。感觉和以前的版本(之前也用过iar)没什么太大区别,可能是我对单片机研究不深的缘故吧。         上st官网发现F4的标准库有了更新(Standard Periph Lib),我果断又下载下来,整理了一下自己的Workspace。我把所有的工程文件都删掉后,重新建立了一个工程模板。等我凭着记忆建立好一个标准的template工程后,把跑马灯的程序make了一下,发现编译器报错了——坏了,我又忘记配置什么东西了。折腾了一个下午,我居然没摆平以前门儿清的”工程建立“。         这可能和我的学习习惯有关,平时都是用到什么学什么,不用的坚决不学,什么事情都走简单的路。玩了一年DSP和FPGA后,我重新拿起arm,发现有些很简单的东西都不会了。(T_T)         感受先不多说了,我上传了st官网的标准库文件(不是Cube库啊!别下错了哦,下错了耽误你的时间我可没办法)在我百度云上。官网速度挺慢的,网盘上好像还没有哦,我上传了节省大家时间。我上大学之后经常潜水逛EDNChina,自学英语(英语学习千万不要断)、自学日语(能看懂但是写不出文章)后也常去EDN、EDNJAPAN。EDN上经常能见到很多大神和大触,本人刚刚博一,发本文的初衷是希望能节省大家的时间,大神们和大触们抱歉让你们见笑了。(@_@) 版本是1.6.1。 链接:http://pan.baidu.com/s/1qX0nlmO         下面我给苦恼于没能快速建立工程的同学们介绍这个快捷的方法。 大家下载了上面网盘里的文件后,解压,将里面的文件夹和文件放到你的workspace里。 然后打开Project文件夹,可以看到: 两个文件夹。   接下来是关键,新建一个文件夹,将STM32F4xx_StdPeriph_Templates文件夹里的东西全复制到刚新建的文件夹里。   然后                       打开EWARM文件夹里的Project.eww文件,在iar编译器里往main函数里写自己的代码就可以了!(记得选择自己对应型号的单片机!)其他编译器也应该同理,不过我对其他编译器不怎么感兴趣,所以没有试。 说起来建立工程不成功的原因往往在于粗心,忘了这个忘了那个(除非是一点都不懂)。 对于初学者来说,快速的入门对培养兴趣是很重要的,有了兴趣,才有深入钻研的动力。在单片机上,我一直停留在”初学者“阶段——让我干活,我能给你实现了,但没什么钻研。我把时间主要都投入在算法(对了还有汇编,提起汇编就想哭)和电路两者上了,在细致的编程和编译器配置上没什么发言权。   希望这篇文章能够帮助一些同学省去一点不必要的麻烦。等对编译器熟悉了,同学们再细致地研究编译器的配置也不迟。   提供一篇参考文献: http://bbs.eeworld.com.cn/thread-365832-1-1.html 这篇文章讲解了头文件路径填写的一些问题,讲解了其中的一些命令,对我有了很大帮助。   引用: $PROJ_DIR$表示工程所在路径 $TOOLKIT_DIR$表示IAR安装目录所在头文件路径 \..\表示返回上一级目录   这样大家就能看懂网上一些文章的对头文件路径的描述语句了吧! 下次给大家分享FPU的使用感受!
  • 热度 21
    2013-7-26 21:23
    1296 次阅读|
    0 个评论
    以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程。这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间。每次建立工程都这么编译,是一个相当浪费时间和 香烟的过程。 于是,我有了将库编译成lib文件的想法。本文就是我将STM32F4的标准库编译成lib文件并在工程中使用的过程。 适用对象: 1. 熟悉库,不想再看库里边代码 2. 有稳定的库,库文件更新不频繁 3. 库文件多,每次编译时间长 下面是我将STM32F4的标准库编译成lib并在工程中使用的过程: 1、建立创建lib的工程 2、将库文件拷贝到工程目录: 将库里边目录\STM32F4xx_StdPeriph_lib v1.0.2\STM32F4xx_StdPeriph_Driver下的inc和src两个文件夹拷贝到预创建工程的目录。我计划在目录E:\学习\ARM\库\stm32f4-2中创建库。于是我将两个文件夹拷贝到了这里。 3、选择芯片:STM32F407VG 4、选择NO。因为这不是可运行的程序,这里不需要加入启动文件。 5、创建完工程后,工程结构如图: 6、MDK中点击工具栏上的 设置工程结构,并将库文件加入工程: 为了通用,我将库中所有的C文件都加入了工程 7、完成后MDK下的目录结构: 8、MDK下设置输出选项: 工程选项中设置输出,选择输出lib到目录E:\学习\ARM\库\stm32f4-2\lib\: 9、设置C语言预编译宏和引用目录: 因为要使用STM32F4标准库,预编译选项设置:USE_STDPERIPH_DRIVER,STM32F4XX 将刚才拷贝的inc和工程根目录文件夹加入引用: 10、设置完成后: 11、将stm32f4xx_conf.h文件拷贝到工程: 这个文件需要在标准库提供的示例工程中找: 我使用的是\STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\ADC3_DMA\stm32f4xx_conf.h 这个文件引用了库文件中所有的头文件。因为不包含在库中,我将这个文件拷贝到E:\学习\ARM\库\stm32f4-2文件夹。 12、到此,工程设置完成。按F7编译,经过一支烟的时间即可生成库的lib。 生成完成后,MDK工程中: 13、工程输出目录: 文件stm32f4lib.lib就是我们生成的lib文件 14、将库文件加入该工程 15、新建工程,我命名成stm32f4use,处理器依旧选择STM32F407VG。 16、这是选择yes,因为这是一个可执行的工程: 17、将标准库示例工程的\STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\ADC3_DMA中的system_stm32f4xx.c拷贝到工程目录(E:\学习\ARM\库\stm32f4-2)中 18、再次点击菜单上的 设置工程目录结构,将刚才生成的lib库加入到工程中: 19、将示例工程\STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\ADC3_DMA中的system_stm32f4xx.c拷贝到工程目录。 20、将main.c和 system_stm32f4xx.c 加入到工程 21、完成后的目录结构: 22、加入编译选项 与上边生成lib相似,预编译选项设置:USE_STDPERIPH_DRIVER,STM32F4XX 引用目录:.\inc;..\stm32f4-2 (这里的.\inc;..文件夹就是刚才建立库时候的文件夹) 输出可执行文件: 23、添加几行简单的代码 //点亮一个LED #include #include "stm32f4xx_conf.h" #include "stm32f4xx_tim.h" int main() { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOD,GPIO_InitStructure); GPIO_SetBits(GPIOD,GPIO_Pin_12); while(1); } 24、工程设置完成,按F7试试。现在编译速度快起来了,点个烟的时间就编译完了。
相关资源