历史上的今天
返回首页

历史上的今天

今天是:2025年04月07日(星期一)

正在发生

2021年04月07日 | STM32工具安装和工程模板的建立

2021-04-07 来源:eefocus

简介:在安装软件和新建工程这个过程中可能会出现各种问题,最好的办法就是百度,说实话,刚开始没有接触STM32,从软件下载到安装再到工程模板的建立我也弄了一天!要有耐心慢慢来!就会发现其实就那么回事!


一、工具安装


1.J-Link驱动的安装下载地址


2. KEIL MDK的安装这个版本更新很快,我用的是4.7版本的,现在5.0版本的都出来,所以可以自己百度去下载,很多地方都能下载到


3.成功安装好J-Link,同时插上J-link下载线后能在我的电脑设备管理器中看到J-Link Driver


4.由于安装大同小异,这里不再赘述。


二、工程模板的建立


准备工作


1.下载ST官方库,我这里是用的3.5版本的


2.STM32使用手册、固件函数手册,开发板原理图文件、以及ST助手


3.网上下载地址很多,这里我把多个文档打包在一起,下载地址:http://pan.baidu.com/s/1kTgI7Y3


下面介绍一下ST库文件的每个文件的内容


解压后你会发现ST库是这样一个文件夹,文件夹名为:STM32F10x_StdPeriph_Lib_V3.5.0,然后里面又包含了4个文件夹,一个网络链接,和一个ST库开发助手。


下面主要介绍四个文件夹:


1.Project文件夹


1.1Example


标准外设库驱动的完整例程


1.2Template


1.2.1RVMDK


KEILRVMDK的项目模板示例


1.2.2EWARMv5


IAREWARMv5的项目模板示例


1.2.3RIDE


2.Libraries文件夹


2.1CMSIS


2.1.1Documentation


CMSIS文档


2.1.2CM3


??CoreSupport


core_cm3.cCMSIS的Cortex-M3内核设备访问层源文件


??DeviceSupport/ST/STM32F10x/startup


larmARM编译器启动文件


startup_stm32f10x_ld.s大容量产品启动文件


startup_stm32f10x_md.s中容量产品启动文件


startup_stm32f10x_hd.s小容量产品启动文件


liarIAR编译器启动文件


同arm


lgccGCC编译器启动文件


同arm


2.2STM32F10x_StdPeriph_Driver


2.2.1Inc


标准外设库驱动头文件


2.2.2Src


标准外设库驱动源文件


3._htmresc文件夹


本文件夹包含了所有的html页面资源


4.Utilities文件夹


4.1STM32_EVAL


本文件夹包含了用于STM3210B-EVAL和STM3210E-EVAL评估板的专用驱动










一些重要固件库文件:


main.c主示例函数体


stm32f10x_conf.h参数配置文件,它要求用户在运行应用程序之前对它进行修改,定义需要与库进行交互的参数。用户可以使用模板使能或者禁能外围模块,并且可以改变外部石英振荡器的数值


stm32f10x_it.h头文件,包括所有中断处理函数原型


stm32f10x_it.c外围模块中断处理函数文件,用户可以引入在应用程序中需要使用的中断处理函数。如果有多个中断请求映射到同一个中断向量,该函数采用轮循环围中断标志的方式来确认中断源。这些函数的名字在固件库中提供。


stm32f10x_lib.h头文件,包括所有外围模块的头文件,这是唯一一个需要在用户应用程序中引用的文件,它作为库的接口。


stm32f10x_lib.c调试模式初始化文件,它包括变量指针的定义,每个指针指向相应外围模块的首地址和当调试模式使能时被调用的函数的定义。该函数初始化已定义的指针。


stm32f10x_map.h该文件实现用于调试,释放模式的内存映射和寄存器物理地址定义。它提供给所有的外围模块。


stm32f10x_type.h普通声明文件。包括所有外围驱动程序使用的普通类型和常量。


stm32f10x_ppp.hPPP外围模块的头文件。包括PPP外围模块函数的定义和在这些函数中使用的变量的定义。


stm32f10x_ppp.cPPP外围模块驱动程序源代码文件,用C语言编写


cortexm3_macro.h头文件


cortexm3_macro.s专用的Cortex-M3指令的指令封装




正式开始建立工程:




1.在桌面上新建一个文件夹,取名STM-Demo,然后在里面新建四个文件夹分别是 CMSIS,FWlib,Listing,Output,USER


2.首先把ST库中的LibrariesSTM32F10x_StdPeriph_DriverInc 和Src文件夹拷贝到你新建的STM-Demo文件夹中的FWlib中


3.把ProjectSTM32F10x_StdPeriph_Template下的stm32f10x_conf.h、main.c、stm32f10x_it.c、stm32f10x_it.h、system_stm32f10x.c拷贝到你新建的文件夹USER目录下


4.把LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm 下的所有文件拷贝到你新建的CMSISstartup,前面现在里面新建好startup文件夹


5.将LibrariesCMSISCM3CoreSupport中的core_cm3.c和core_cm3.h拷贝到你的CMSIS目录下,同时将LibrariesCMSISCM3DeviceSupportSTSTM32F10x中的stm32f10x.h、system_stm32f10x.h、system_stm32f10x.c拷贝打你的CMSIS目录下


6.这样我们的文件建立就完成了,这下我们可以打开MDK新建一个工程了,取名为STM32-Demo,然后添加四个group,分别为STARTCODE,USER,FWlib,CMSIS,在STARTCODE中添加startup_stm32f10x_hd.s,在USER中添加main.c和stm32f10x_it.c,同时在FWlib中添加全部的驱动文件,在CMSIS中添加core_cm3.c、core_cm3.h


添加完成后如下图所示:



然后就是配置MDK选项




     最后就是修剪你的main函数了


#include "stm32f10x.h"




int main(void)

{

while(1);

// add your code here ^-^

}


修改成这样就行了!这样一个工程就完成了,保存下来,以后编程的时候直接可用,不用在配置第二遍


同时你往里面添加的用户函数,配置串口什么的都可以保留下来,在main中直接调用免得后面要再次使用时很麻烦。

推荐阅读

史海拾趣

博众电气(BZCN)公司的发展小趣事

随着国内市场的日益饱和,博众电气开始将目光投向国际市场。公司制定了国际化发展战略,积极参与国际竞争与合作。通过在国外设立分支机构、参加国际展会等方式,博众电气成功打开了国际市场的大门。如今,公司的产品已经远销海外多个国家和地区,国际市场份额逐年攀升。

CONTTEK Group GmbH公司的发展小趣事

CONTTEK Group GmbH公司注重企业文化的建设和团队精神的培养。公司倡导“以人为本、创新驱动”的企业文化,鼓励员工积极参与创新活动,发挥个人潜能。同时,公司还注重团队建设,通过定期的培训和团建活动活动,增强员工的凝聚力和向心力。这种积极向上的企业文化和团结协作的团队精神,为公司的持续发展提供了强大的动力。

这五个故事展示了CONTTEK Group GmbH公司在电子行业中的发展历程和取得的成就。从创立初期的艰难起步到技术创新、市场拓展、品质管理和企业文化建设的不断推进,CONTTEK Group GmbH公司始终保持着积极进取的精神和不断创新的态度,在电子连接器领域取得了显著的成绩。

Datalogic公司的发展小趣事

随着公司业务的不断发展,Datalogic意识到全球市场的巨大潜力。从2000年代开始,公司加快了全球化步伐,通过设立销售和服务中心,覆盖了全球100多个国家。这种全球布局不仅使Datalogic能够更好地服务全球客户,还为公司带来了更多的市场机会。

宁波晨翔电子(CONNFLY)公司的发展小趣事

随着技术的不断积累和创新,晨翔电子在智能仪表、LED照明、无线网络等领域取得了显著的技术突破。公司不仅成功研发出多款具有竞争力的产品,还积极拓展国内外市场,与多家知名企业建立了长期稳定的合作关系。这一时期的成功,为晨翔电子的后续发展奠定了坚实的基础。

Highland Electronics Co Ltd公司的发展小趣事

在公司快速发展的过程中,High Tech Chips Inc深刻认识到单打独斗的局限性。因此,公司积极寻求与全球知名科技企业的战略合作。通过与华为、三星等手机制造商的合作,High Tech Chips Inc的芯片产品被广泛应用于这些企业的旗舰机型中,极大地提升了产品的知名度和市场占有率。同时,公司还与英伟达、英特尔等芯片巨头建立了技术合作关系,共同推动芯片技术的创新和发展。

高创科技(gotrend)公司的发展小趣事

面对全球半导体市场的周期性波动和贸易环境的不确定性,High Tech Chips Inc展现出了强大的应变能力和灵活性。在市场需求下滑时,公司迅速调整产品结构,加大在物联网、5G通信等新兴领域的研发投入。同时,通过优化供应链管理、提高生产效率等方式降低成本,保持了良好的盈利能力。这种灵活应对市场挑战的策略使得公司在行业低谷期依然能够稳健发展。

问答坊 | AI 解惑

关于程序入口问题

我买的tq2440的板子。现有如下疑问。如果有编写一个小于4KB的.bin程序可以直接被“进阶石”载入。那么这bin文件的-ro-base 和 entry 怎么设置?是填“进阶石”的映射地址0x0 还是填内存地址0x30000000 ? 随机送的启动代码中,有个函数copy-from-fl ...…

查看全部问答>

无聊,大家一起休闲下~~

http://www.hougong.info/?fromuid=92961…

查看全部问答>

cepc下的usb驱动问题,跪求解答!!!

用pb5.0做了个pc上运行的映像,可以在正常下载和启动 但是在目标pc上插上u盘后没有反应 请问定制映像时还应该添加什么组件,才能让它认出u盘啊 多谢各位啦!!!…

查看全部问答>

有兴趣的兄弟来加入硬件/嵌入开发 无线QQ群

有兴趣的兄弟来加入硬件/嵌入开发 无线QQ群 让我们来进同进步吧!!!!!一起交流开发经验!!! 群号36507037 …

查看全部问答>

关于fft

今天碰到一个问题,由于处理需要用到fft变换所以采用了一下的fft函数,函数在vc上运行正确,在我的ST STM32F10xxE上运行,结果运行函数不正确,应该是编译器的问题,但是不知道有什么方法可以修改一下函数使得结果正确,望高手解答,谢谢 ...…

查看全部问答>

关于并口和USB仿真器的问题

最近正在用FE425做一个程序,用并口调试时读不到SD16的转换结果,但是同样的设置(只是把下载器设置改了一下)USB仿真器却可以读出来。为什么呢???…

查看全部问答>

关于fpga的问题

我在看cyclone 3的用户手册,里面看到pll锁相环的关于programme duty cycle不是很懂什么意思 The programmable duty cycle allows PLLs to generate clock outputs with a variableduty cycle. This feature is supported on the PLL post-scale c ...…

查看全部问答>

【MSP430共享】军工级设计-ZigBee-VB.Net上位机---原理图,PCB,代码,程序

检测H2S、CO和瓦斯(主要是CH4)。MCU采用MSP430F425,ZigBee采用AT-MR500模块(MG2450芯片)。实现了ZigBee通信,上位机实时气体浓度监控软件。 [ 本帖最后由 mrwtc 于 2011-9-29 10:42 编辑 ]…

查看全部问答>

10路由器,40终端节点的网络,组网一段时间后无法发送向协调器发送数据

协议栈2.5 网络结构 1 协调器,10路由器,40终端节点。 组网后协调器向所有路由器和终端节点广播数据,路由和终端节点收到数据后回复。 组网10分钟左右,路由器和终端节点可以收到协调器广播数据,但是回复数据协调器无法收到 重启协调器,可以 ...…

查看全部问答>