历史上的今天
返回首页

历史上的今天

今天是:2025年02月18日(星期二)

正在发生

2019年02月18日 | 如何新建stm32固件库工程

2019-02-18 来源:eefocus

1、首先先新建一个工程文件夹,在它之下再新建7个文件夹



DOC用于存放程序说明文件


Listing存放的是编译器编译时候产生的c/汇编/链接的列表清单


Output存放的是编译产生的调试信息、hex文件、预览信息、封装库等


Project用来存放工程


CMSIS 和 STM32F4xx_StdPeriph_Driver 用来存放的是固件库文件


USER是用户编写的驱动文件


2、新建工程


打开 KEIL5,新建一个工程,工程名根据喜好命名。



接下来选择CPU具体型号,如果这里没有出现你想要的 CPU 型号,或者一个型号都没有,那么肯定是你的 KEIL5没有添加 device 库, KEIL5 不像 KEIL4 那样自带了很多 MCU 的型号,KEIL5 需要自己添加。(这里以stm32f429芯片为例构建固件库工程模板)                                                   


     


等下我们手动添加库文件,这里我们点击关掉。



在新建的工程中添加 5个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。


右键点击Target1



新建如下几个组文件夹



STARTUP:存放汇编的启动文件:startup_stm32f429_439xx.s


CMSIS: 存放与内核有关的文件这里以M4内核为例:system_stm32f4xx.c


STM32F4xx_StdPeriph_Driver:存放STM32外设库文件misc.c  stm32f4xx_ppp.c(ppp代表外设名称)


USER:用户编写的文件: main.c:main函数文件,暂时为空   stm32f4xx_it.c:跟中断有关的函数都放这个文件,暂时为空        DOC: 工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等


       先把上面提到的文件从 ST 标准库中复制到工程模版对应文件夹的目录下,然后在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件即可。



STM32F429比较特殊,它有用 FMC外设代替了 FSMC外设的功能,所以它的库文件与其它型号的芯片不一样,在添加外设文件时,stm32f4xx_fmc.c 和 stm32f4xx_fsmc.c文件只能存在一个,而且我们的 STM32F429芯片必须用 fmc 文件。如果我们把外设库的所有文件都添加进工程,也可以使用下面的方法,设置文件不加入编译,这样也不会导致编译问题。这种设置在开发时也很常用,暂时不把文件加进编译,方便调试。



添加完成后,接下来进行设置


这一步的配置工作很重要,很多人串口用不了 printf 函数,编译有问题,下载有问题,都是这个步骤的配置出了错。


(1) Target 中选中微库“ Use MicroLib”,为的是在日后编写串口驱动的时候可以使用printf函数。而且有些应用中如果用了 STM32的浮点运算单元 FPU,一定要同时开微库,不然有时会出现各种奇怪的现象。FPU 的开关选项在微库配置选项下方的“Use Single Precision”中,默认是开的。


(2) 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹,如果想在编译的过程中生成 hex文件,那么那 Create HEX File 选项勾上。


       

  

(3) 在 Listing选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。


    


(4) 在 C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径。



在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。


  STM32F429_439xx 宏:为了告诉 STM32标准库,我们使用的芯片是 STM32F429型号,使 STM32标准库根据我们选定的芯片型号来配置。


  USE_STDPERIPH_DRIVER 宏:为了让 stm32f4xx.h包含 stm32f4xx_conf.h 这个头文件。


“Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可。(请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错) 


编译即可


推荐阅读

史海拾趣

鸿展光电(GPO)公司的发展小趣事

在电子行业中,鑫雁公司(这里主要指鑫雁电子科技(上海)有限公司及其后续发展形态,如上海鑫雁微电子股份有限公司)的崛起与发展,伴随着一系列重要的里程碑和战略决策。以下是五个与鑫雁公司发展相关的故事:

1. 初创与立足上海

鑫雁公司始建于2004年(另有说法为2009年或2010年,以最新信息为准,这里采用2010年作为起点),选址于中国之魔都——上海。公司自成立之初便专注于集成电路及相关产品的研发与销售,并迅速在竞争激烈的电子行业中站稳脚跟。得益于上海作为国际大都市的地理位置优势和丰富的产业链资源,鑫雁公司逐渐吸引了一批具有丰富经验的研发和管理人才,为公司后续的发展奠定了坚实的基础。

2. 研发实力积累与技术创新

鑫雁公司的主要研发和管理人员均来自国内知名集成电路设计企业,他们拥有十五年乃至二十年以上的集成电路产品研发经验。公司在多个工艺平台上成功开发了包括霍尔磁传感器电路、电源管理电路等在内的一系列拥有自主知识产权的数模混合集成电路产品,并获得了多项发明专利、实用新型专利和集成电路版图保护专利。这些技术成果不仅提升了公司的核心竞争力,也为公司在市场上赢得了良好的口碑。

3. 全国布局与国际化拓展

随着业务的不断扩展,鑫雁公司开始在全国范围内布局,先后在杭州、西安等地设立了研发机构或技术合作团队,并在江苏、广东等国内主要发达经济区域设立了客户服务的办事处。此外,公司还将目光投向了国际市场,在美国硅谷等地建立了研发合作团队,进一步提升了公司的国际影响力。这种全国乃至全球的布局策略,为公司带来了更多的市场机会和合作伙伴。

4. “无工厂化”模式与品质保障

鑫雁公司采用“无工厂化”(Fabless)的设计公司模式,通过委外加工方式进行生产。公司精心挑选了具有世界先进制造设备和技术的晶圆代工和封装合作伙伴,以确保产品品质的可靠性和充足的市场供应能力。这种灵活的生产模式不仅降低了公司的运营成本,还使公司能够专注于产品研发和市场拓展等核心业务。

5. 持续创新与多元化发展

秉承“提升自我、超越期待”的核心理念,鑫雁公司始终坚持技术创新和多元化发展。公司不断加大技术研发投入,积极探索新产品的开发和推广,逐步形成了以汽车电子为主赛道,并在新能源、工业自动化、消费电子等多个领域深入发展的格局。这些努力不仅丰富了公司的产品线,也进一步提升了公司的市场竞争力。同时,公司还积极与国内外知名企业建立合作关系,共同推动电子行业的发展和进步。

CT Micro公司的发展小趣事
  1. 创业初期与技术创新

CT Micro公司最初由几位电子工程领域的专家创立,他们看到了微型计算机断层扫描(Micro-CT)技术在电子行业中的巨大潜力。初期,公司面临着资金短缺和技术难题,但他们通过不断研发和创新,成功开发出了一款具有高性价比的Micro-CT设备,迅速获得了市场的认可。

  1. 市场拓展与合作伙伴关系

随着产品的成熟,CT Micro开始积极寻求市场拓展。他们与多家电子制造企业建立了合作关系,为这些企业提供Micro-CT设备的定制服务。通过与这些企业的合作,CT Micro不仅扩大了市场份额,还进一步提升了产品的技术水平和应用范围。

  1. 研发升级与产品迭代

面对日益激烈的市场竞争,CT Micro不断投入研发力量,对Micro-CT设备进行升级和迭代。他们成功推出了多款新型设备,具有更高的分辨率、更快的扫描速度和更低的辐射剂量。这些新产品的推出,进一步巩固了CT Micro在电子行业中的领先地位。

  1. 国际化战略与市场拓展

随着国内市场的饱和,CT Micro开始实施国际化战略。他们积极参与国际展览和研讨会,展示自己的产品和技术实力。同时,他们还在海外设立了销售和服务中心,为国际客户提供更加便捷的服务。通过这些努力,CT Micro成功打开了国际市场的大门。

  1. 社会责任与可持续发展

在快速发展的同时,CT Micro也积极履行社会责任。他们注重环保和可持续发展,采用环保材料和节能技术生产产品。此外,他们还积极参与公益事业,为贫困地区的教育和医疗事业贡献力量。这些举措不仅提升了公司的社会形象,也为其可持续发展奠定了坚实基础。

请注意,这些故事框架是虚构的,并不代表CT Micro公司的实际发展情况。如果您需要了解CT Micro公司或类似公司的真实故事,建议您查阅相关公司的官方网站、新闻报道或行业分析报告。

友盟(AP)公司的发展小趣事

在追求商业成功的同时,友盟(AP)公司也积极履行社会责任,致力于可持续发展。公司关注环境保护、公益事业等方面的问题,积极参与相关活动和项目。同时,友盟还通过技术创新和产品优化,推动电子行业的绿色发展和数字化转型。这些努力不仅提升了公司的社会形象,也为其未来的发展注入了新的动力。

以上是关于电子行业里友盟(AP)公司发展起来的5个相关故事。这些故事从不同角度展现了友盟在技术创新、合作伙伴关系、市场拓展、人才团队建设以及社会责任等方面的努力和成就。当然,每个公司的发展都是一个复杂而多元的过程,这些故事只是其中的一部分。

EF Johnson Technologies Inc公司的发展小趣事

在电子行业中,技术创新是企业持续发展的关键。EF Johnson公司深知这一点,始终将研发作为公司发展的核心驱动力。公司不断加大对研发的投入,积极引进高端人才,并与高校和研究机构建立紧密的合作关系。这些举措让EF Johnson在技术上始终保持领先地位,不断推出具有竞争力的新产品和解决方案。

BJB公司的发展小趣事

BJB公司的创立源于对照明电器领域的深刻理解和市场需求的敏锐洞察。创立初期,公司面临着资金短缺、技术挑战和市场竞争等多重困难。然而,通过创始人的坚定信念和团队的共同努力,BJB逐渐攻克技术难关,推出了一系列高质量的照明配件产品,初步在市场中获得了认可。

ERA Transformers公司的发展小趣事

为了保持技术领先地位和市场竞争力,ERA Transformers公司非常重视创新与研发工作。公司每年都会投入大量资金用于新产品的研发和技术创新。在一次研发项目中,公司成功开发出了一种具有超高能效和极低损耗的新型变压器。这款产品的问世立即引起了市场的广泛关注,并成功获得了多项国内外专利。持续的创新与研发使得ERA Transformers公司在电子行业中始终保持着领先地位。

问答坊 | AI 解惑

HTCAD 土石方量计算软件

HTCAD是一套基于AutoCAD平台上开发的土方工程量计算绘图软件,针对各种复杂地形况,软件采用了方格网法计算土石方量。软件具有良好的交互性,界面友好,贴近设计人员的设计思路,能够在最短的时间内计算出土石方量。适用于工业设计院总图专业,规划 ...…

查看全部问答>

机器人讲座 第二讲

机器人讲座 第二讲   …

查看全部问答>

开关电源要降低纹波主要要在三个方面下功夫

1、储能电感。储能电感在工作频率下的Q值越大越好,很多人只注意到电感量,其实Q值的影响要大得多,电感量只要满足要求允许在很大范围内波动。 2、滤波电容。滤波电容的ESR和ESL是非常重要的参数,越低越好,仅追求容量是远远不够的,当然在满 ...…

查看全部问答>

单片机原理和应用课件

正在学单片机传个课件上去 与大家共享了…

查看全部问答>

【晒电路】麦克风放大电路

前几天发过一个电路,有噪声.但没人给解答.后来又重新用TDA2822做了一个麦克风放大的,用在对讲电路中,效果很好,没有一点噪声. 因为开始自己寻找这方面的电路找了很久,但照图弄出来效果都不理想.所以就想把自己的贴出来,给需要的同行一点帮助. 本电 ...…

查看全部问答>

底板和芯片模块如何连接

有一个问题有点疑惑,以前没弄过焊接开发板的事,现在想想要是想把模块芯片焊接到开发板上那么引脚该怎么连啊,比如我想连接编解码芯片到开发板上,用iic总线传输控制信号,spi接口传输数据,通用i/o口传一些中断等信号,那么这块芯片怎么和开发板 ...…

查看全部问答>

求教:TCPMP线程问题!?

小弟调用tcpmp的common.dll来做开发 Context_Init((tchar_t*)name, (tchar_t*)version, id, (tchar_t*)cmdline, application);                                 ...…

查看全部问答>

视频设备开发

请教高手 我现在有几副图象要显示在电视机上,图象存在EEPROM中,不知用什么样的图象处理芯片?原先红白机中用了UM6538,但其象素太低,不知有何芯片替代? …

查看全部问答>

evc 编译完成 如何调试该程序?

我的意思是,用evc ide 直接连接 sdk 开发板(2410) 直接下载到板子上执行。 板子上已经用pb 4.2 编译的wince 下载完毕。 我目前只能evc ide 下载到 evc 的 模拟器上执行。 如何,让evc ide 连接 sdk (2410)直接执行呢? 需要配置什么?…

查看全部问答>

S3C2440中的Uart串口地址问题

请教S3C2440中的Uart串口地址问题:UART0的发送缓冲区地址为0X50000020,接收缓冲区地址为0X50000024,中间只相差4个字节,怎么来的64字节的FIFO缓冲区呢? 谢谢!…

查看全部问答>