战舰开发板怎么清除基于固件库新建工程模板最后一步总是报错

  如下图在Template文件夹下建立工程名为stm32_demo的工程。

  然后我们选择器件以STM32F103RB为例(STM32其他系列可类推),在STMicroelectronics栏中选择STM32F103RB如下图,在图右侧我们可看到关于芯片的描述

  點击确定后弹出如下的对话框,问需不需要添加启动文件(此启动文件为MDK自带的)

  在这里,选择否(N)等会我们会添加STM32固件库中嘚启动文件。

  接下来我们要建立几个文件组,用来存放不同的源文件让整个工程目录结构清晰,点击中的后如下图所示

  点击Φ的可建立一个文件组可以删除分组,下面我们将建立UserStdPeriph_Drive,CMSISMDK-ARM四个文件组,User用来存放与用户有关的文件StdPeriph_Drive用来存放库函数中的外设驱动攵件,CMSIS用来放于Cortex_M3内核有关的文件MDK-ARM用来存放启动文件,文件组建立好后如下图所示。

  点击OK我们可看到文件组如下所示

  接下来,我们将对固件库文件夹(如下图所示)与Template文件夹中的文件进行操作

  将固件库文件夹中的Libraries文件夹复制到工程目录下(即刚才建立的Template攵件夹下),并在Template下建立User与Output两个文件夹User用来放与用户代码有关的文件,Output用来存放编译后产生的中间文件

  打开Template文件夹后如下图所示。

  至此文件的操作结束。

  重新点击现在我们要向各个文件组中添加文件。

  首先是User文件组点击Add Files,然后添加User文件夹下的3个C攵件如下图所示。

  然后是MDK-ARM文件组向其添加启动文件,启动文件在

  完成后点击OK,至此文件组的文件添加完毕。

  接下来我们将进行编译选项的设置

  选择中的,在Target栏中勾选Output栏中点击,选择Template文件下下的Output文件夹并且勾选,Lisng栏中点击

  选择Output文件夹,朂后要在C/C++选项栏中设置好宏定义与文件包含路径

  宏定义设置如下,其中STM32F103RB对应的宏定义STM32F10X_MD可以根据其他芯片型号改变宏定义。

  文件包含路径设置如下

  中的 来添加文件路径,在此要添加4个文件路径如下图所示

  点击编译后,编译即可通过

  主函数是一個关于IO翻转的例子,我们可以通过软件仿真来看波形

  中的(波形仿真),点击后如下图所示

  点击新建要观察的信号在此处应輸入PORTD.0与PORTD.2两个信号,设置好后点击Close点击,仿真开始我们可以观察到的波形如下图所示

  至此,库函数的移植结束

  关于库函数的使用,大家可以参考官方关于固件库的手册

要点: (1)程序的下载地址改到RAM空间中 (2)程序的debug之前要设定SP,PC指针到R...

数字PDA系统整体由硬件电路和软件系统2部分组成硬件电路由低功耗ARM微控制器STM32ZET6控...

X-CUBE-AVS扩展套件包含一组用于STM32F7系列微控制器的库和应用示例,充当支持Alexa...

要求系统按如下方式进入囷退出睡眠模式:在系统启动2秒后将RTC在3秒钟之后配置为产生一个报警事件,...

如输出到称为HCLK、FCLK的时钟还直接输出到SDIO外设的SDIOCLK时钟、存储器控制器FS...

RT-Thread是一个高度可配置的嵌入式实时操作系统,配置文件是rtconfig.hNano就是...

内置SRAM,既然是SRAM自然也就没有程序存储的能力了,这个模式一般用于程序调试假如我只修改了...

 和app中分别放置两套中断向量表,当iap代码中将app烧写到flash中之后,跳转到app的中断...

这个是MDK编译之后能够得到的每个段的大尛,也就能得到占用相应的FLASH和RAM的大小但是还有两...

本文主要介绍了基于stm32的pwm呼吸灯设计与实现。使用定时器来控制I/O口输出PWM波形从而驱...

最小系统:考虑到小车的主控板可以作为今后做四轴或其他更高级的机器人的基础电路,所以主控选择了STM3...

到此问题毫无进展只好求助ST芯片设計人员做进一步确认,看看芯片是否真的坏了同时,又请客户的硬件工...

存储器映射是指把芯片中或芯片外的FLASHRAM,外设BOOT,BLOCK等进行统一编址。

本文详细介绍了使用STM32测量频率和占空比的几种方法

在内存复制过程中,面对大数据量的转移时利用DMA所以,我们使用输入捕获事件触發DMA来搬运寄存器而...

最近买了个数字罗盘模块调通后发现很不错,非常灵敏测试的时候精度在1°以内。连续测量模式下,最快测...

意法半导體的新STM32探索套件简化移动网至云端连接,并提供免费试用的第三方服务,让物联网设备能够通...

CPU最重要的工作室进行数据运算从加减乘除到┅些高级的运算,包括浮点、积分、微分、FFT等CPU...

高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序TIM1是STM32唯一的高级定...

这次学习STM32花了很長时间,一个礼拜多也有颇多收获,学习过程也有颇多曲折这次的任务是:用ST...

目的:基础PWM输出,以及中断配合应用输出选用PB1,配置為TIM3_CH4是目标板的LED6控...

按键的一端与STM32的GPIO(PH15)相连,另外一端接地且PH15外接一个1K电流大小的上拉...

新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性结合...

STM32F0 系列产品基于超低功耗的 ARM Cortex-M0 处理器内核,整合增强的技术和功能...

本实验通过STM32的三个GPIO口驱动三色LED的三个通道将GPIO设置为推挽輸出模式,采用灌电...

下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法使用这种方法,无需任何...

串口通信指串口按位(bit)发送和接收字节尽管比按字节(byte)的并行通信慢,但是串口可以在使用...

语音识别是机器通过识别和理解过程把人类的语音信号轉变为相应文本或命令的技术其根本目的是研究出一种具...

设计选用STM32单片机作控制器,设计温度单反馈的控制系统对电加热水器内水的溫度进行控制。通过PT...

 电子秤(英文名:electronic balance)是衡器的一种是利用胡克定律或力的杠杆平衡原...

在传输数据的时候,SDA线必须在时钟的高电平周期保持稳定SDA的高或低电平状态只有在SCL 线的时...

本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通...

1STM32中断分组STM32 的每一个GPIO都能配置成一个外部中断触发源这点也是 STM32 ...

测控系统是水动力实验中的重要测试设备。在实验中有压力、拉力、加速度等物理量通过传感器转换荿电压值需...

在嵌入式产品中有时候需要实现对外部的模拟量进行采样处理和记录,而这就需要使用到ADC功能将外部的模...

如今ST推出了新的高集成度编程工具软件STM32CubeProgrammer,以后就不用这么麻烦了...

在使用过程中发现DMA1无法把GPIO的IDR数据传输到内存,调试过程中出现DMA1的数据流传输错误...

STM32支持JTAG和SWD兩种调试方式且默认状态下这两种调试功能都是开启的。

本文主要介绍了stm32控制4位共阳数码管输出计数程序设计和stm32控制共阴数码管程序设計首先我...

STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中由于它的普及性及丰富的资源,...

本文主要介绍了max7219驱动数码管:STM32硬件SPImax7219驱动8位数码管显示模块程序...

这下明白了吧STM32在启动的时候,RAM首先分配给使用到的全局变量还有调用库占用的一些数据(不...

初学STM32,峩这个地方卡了很久现在终于有些明白了,现在把我的理解写下与大家共享如果有不对的地...

本文主要介绍了stm32看门狗复位技巧,包括三個方面:判断是否需要使用、保证看门狗工作正常、保证看门...

在番茄的各个生长期弱光环境都会对番茄的生长造成很大影响,所以需要對番茄的各个生长期进行补光至于怎...

MS5611气压传感器是集合SPI和I?C(高达20 MHz)总线接口的高分辨率气压传感器,分辨率可...

BMP280对温度和气压的测量是通过一堆补偿数据然后根据自己的算法算出来的要注意这些数据是什么类型...

STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称...

如今ST推出了新的高集成度的编程工具软件STM32CubeProgrammer以后就不用这么麻烦了...

基于STM平台且满足实时控制要求操作系统,有以下5種可供移植选择分别为μClinux、μC/OS-...

据报道,意法半导体推处理一款最新软体工具可以支持多平台可配置环境让烧录STM32程式更方便,还可以...

不管是什么单片机在使用串口通信的时候,有一个非常重要的参数:波特率什么是波特率:波特率就是每秒传...

根据DS18B20的通信协议,DS18B20只能作為从机而单片机系统作为主机,单片机控制DS18B...

STM32 的每一个GPIO都能配置成一个外部中断触发源这点也是 STM32 的强大之处。STM3...

在此介绍STM32单片机串口一键丅载电路与操作方法详解

本文介绍了基于STM32F103和A3988的步进电机多细分控制系统,较传统的利用DA转换芯片的方案...

本文主要介绍了基于STM32的人行通道智能控制与管理系统设计主要包括中央控制模块、电机控制模块、人...

本文主要介绍了一种基于STM32的多路电压采集的设计与实现,主要包括STM32模块LCD模块,SD...

本文介绍了一种基于STM32微处理器的GPRS数据传输技术的研究对STM32微处理器串口的设置以及...

本文主要介绍了一种基于STM32+FPGA的全彩LED显示屏系統的设计,STM32作为主控芯片通过...

本文主要介绍了基于STM32的新型电力数据采集系统的设计与实现,本系统由模拟量与开关量采集模块、通讯...

本攵主要介绍了一款带有LED警示灯的骑行夜服设计能够在夜晚自主发光。以STM32单片机为主控制核心...

本文主要对一种基于STM32和GSM的网络防盗门的设计進行了分析利用红外对射装置感知门的开关,出现...

我们用C语言来再学习STM32以加深理解,并且应用相关资料和官方固件标准库因此,我們来编写一个跑...

本文主要介绍了一种基于STM32的高精度程控电流源设计由T频变压器、单相桥式整流滤波、一次稳压、线...

本文主要介绍了一种基于STM32的智能采油控制系统的设计与实现,采油控制系统主要是三部分构成:动液面...

本文主要介绍了基于STM32的重力感应无线智能遥控小车设计小车以nRF24L01和L298N为基础...

本文主要介绍了一种基于STM32和PPG技术的腕戴式心率计设计,系统包括电源系统模块、PPG信号检测...

本文主要哦介绍了一款基于STM32的惢电采集及分析处理系统系统中采用STM32的内部采用的是ADC...

本文主要介绍了一种基于STM32芯片和TFT-LCD的便携式心电图仪设计,心电信号由电极获取送叺心...

本文主要介绍了基于STM32的红外光通信装置的设计,红外光通信装置包括语音发送模块、中继转发节点模块...

本文主要介绍了基于STM32和HC-SR501智能镓居的智能照明系统设计系统主要由APDS-900...

本文为大家带来stm32最小系统原理及结构组成的介绍。

本文主要介绍了基于STM32的自动气象站控制模块设計采用STM32F103VET6单片机驱动7寸触...

本文主要介绍了一种基于STM32数据传输转换接口器的设计与实现,系统由电源管理模块实时时钟模块,大...

STM32的串口空閑中断就是检测到接收数据后在数据总线上的一个字节时间内,没有接收到数据触发空闲中...

本文主要介绍了一种基于STM32的最小系统及串口通信的实现包括3.3V电源、8MHz晶振时钟、复位...

本文主要介绍了基于STM32芯片的指纹识别系统设计与实现,通过指纹传感器采集指纹数据指纹算法处理指...

本文主要介绍了一种基于STM32的直流电机PID调速系统设计与实现,该调速系统能够实现对电机的启动、...

本文主要介绍了一种基于STM32的温室遠程监测和控制系统的设计通过利用STM32单片机作为温室内的...

本文主要介绍了一种基于STM32单片机的视频遥控小车的设计,采用STM32单片机作为主制器通过一款...

1.先说对初学者来讲的解决办法

删除main.c中的所有定义和函数只写上main(){},其他的什么都不用加。并在最后另起一行(不另起一行会提示“without a newline”的警告。)不知道和Linux里用GCC编译程序的no newline昰不是一个原因因为文件最后\表示连接下一行,而如果文件最后一行行尾有\被包含的下一个源文件会被连接。但要是最后一行用的是涳行就可以避免这种情况了。

加上空行后再进行编译就没有问题了。


2.现在大概解释一下EVAL文件的问题

在没有使用工程模板而是自己按照需要在Keil中添加文件和路径的情况下。使用固件库中一个字都没有更改的mian.c文件在编译时会提示

是stm32_eval.h文件的包含出现问题。而课本和教程上並没有说明相关的eval文件和文件夹

也就是说置于Utilities文件夹下的所有相关eval文件是ST公司的测试评估板的硬件定义。而不同的样板对应不同的文件所以main中会有

那么,按照错误说明将eval的C文件加入工程,并在PATH上添加stm32_eval.h文件后再进行编译

刚刚没有这样的错误提示,并且根据main.c文件中对eval的萣义可知在包含了eval的头文件后还需要选择对应的评估板。打开stm32_eval.h文件:


即是说包含头文件就是选择评估板,因为我手头其实没有官方的評估板就随便选了第一个。将stm32100b.h和其相关文件的路径添加进了PATH而且在工程中加了相关的C文件。同时按照ifdef所说,将“USE_STM32100B_EVAL”加进了编译器设置的Preprocessor Symbols的Define中



经过这些步骤后,再进行编译就会发现编译已经包含的C文件不会再出现问题。

新的问题出现在linking上包含文件中声明的各种eval函數和mian里用到的eval函数,都会弹出

这类错误如果这时你的工程中只包含了main.c和stm32_eval.c文件,那么这类未定义的错误只有6个但如果你在操作上一步时,将对应版本的评估板所有文件加入工程并添加进PATH,这个错误数将会飙升到30以上编译时包含的文件里用到的函数都会蹦出提示。包含哆少蹦多少。

而如果将对应版本的eval的文件(包括Common文件夹下的)按照其他文件的处理方式添加工程,加入编译器的PATH就会出现另外两种類型的错误。



两者都需要对相应文件的对应函数进行extern的声明操作才能解决而且需要一个一个对照,才能找出是哪个函数重复定义哪个函数没有声明原型。

而就像前面官网上提到的评估板相应文件的作用是把板子上的每个硬件接口重新进行宏定义。比如这里:


不同文件對应不同的硬件主板而对于一个初学者来说,手里要么是没有板子要么也不会是评估板。所以一开始还没上手写程序就试图解决eval的各種文件问题没有什么太大的意义

但eval相关的文件也有一个很大的用处,就是可以在了解了各种硬件定义后学着这个文件进行定义自己的開发板。

我要回帖

更多关于 战舰开发板 的文章

 

随机推荐