单片机型号:STM32L053R8T6
使用Stm32CubeMx生成的源文件数量比较多,编译的时候会占用很长的时间,我们仔细观察这些文件除了main.c外,其它的文件我们基本上是调用其中的函数,并不需要对其进行改动。所以,可以仿照Freescale MQX的设计方法,分层进行编译,下图是在进行项目设计时候的层次结构。
第0层用于存储Stm32CubeMx生成的工成文件,第2层处理除main.c以外的所有文件,第3层加入应用层的逻辑结构。
第0层的处理方法,大家参考Stm32CubeMx的使用方法,就可以了。
第1层的处理方法,也非常简单,可通过以下步骤完成:
1、在工程目录结构中,移除main.c。
2、选择Options for Target,打开对话框后,选择Output页,进行如下图所示的设置即可。
3、对工程进行编译,我们就可以得到相应的静态库了,我这里是bsp.lib。
第2层的处理方法,可按如下步骤:
1、我们首先复制第1层为第2层,可更名为app。
2、打开目录后,移除main.c以外的所有文件,并重新规划工程目录结构。
3、在工程目录下建立Lib文件夹,将第1层生成的bsp.lib文件复制到该文件夹。
4、重新建立工程目录结构,引入bsp.lib文件,如下图所示。
5、重新对工程进行编译即可。
6、由于引入了库文件,所以可将不需要的文件进行删除,以减小工程占用的磁盘空间,其原则是除去.h和.lib文件外,其它都可删除,当然可别把自己辛苦写的应用层程序删除。
关键字:STM32 静态库 Keil 编译速度
引用地址:
STM32开发笔记16: 使用静态库加快Keil编译速度
推荐阅读最新更新时间:2024-11-04 07:49
STM32 延时函数封装程序
/*--------------------------------- 延时模块函数 说明:只需在工程中加入delay.c和delay.h 文件,即可用 Delayms(__IO uint32_t nTime); Delayus(__IO uint32_t nTime) -----------------------------------*/ #ifndef __DELAY_H #define __DELAY_H #include stm32f10x.h /*--------------------------------- 描 述:参数1即为1ms,1000即为1s;只有几
[单片机]
关于Keil5编译成功但是会有红叉的问题
很多人在用keil5时编译项目无错误无警告但是程序右边会出现红色叉号,如下图所示 这是因为keil新增的同步查错功能,想要关闭的方法是: Edit - Configurations - Text Completion- Dynamic Syntax Checking然后把使能关掉就可以了。
[单片机]
STM32 UART2发送后中断的原因是什么?
SECTION 2 先说TC。即Transmission Complete。发送一个字节后才进入中断,这里称为“发送后中断”。和原来8051的TI方式一样,都是发送后才进中断,需要在发送函数中先发送一个字节触发中断。发送函数如下 /******* 功能:中断方式发送字符串。采用判断TC的方式。即 判断 发送后中断 位。 输入:字符串的首地址 输出:无 *******/ void USART_SendDataString( u8 *pData ) { pDataByte = pData; USART_ClearFlag(USART1, USART_FLAG_TC);//清除传输完成标志位,否则可能会丢失第1个字节的数据。网友提供
[单片机]
STM32学习三:下载标准外设库(Standard Peripherals Library )
要想进行STM32编程,一是直接操作寄存器,这在上节有介绍,另一个办法是使用官方提供的标准外设库(Standard Peripherals Library )。 其实这也没什么好说的,按说既然是官方外设库,应该在官网直接可以下载,可能原来是这样的,只是我按网上提供的方法进入官网得到的结果是这样的。 并没有STM32F1系列MCU的标准外设库,其中第一个STSW-STM32023进去下载后是个EXE文件,运行后是个命令行界面,按解释应该是将2.0的库迁移到3.0的工具。那么网上流传的STM32F1系列的V3.5库在官网是不是没有下载?反正我一时找不着,当然,如果你不较真的话,通过度娘一搜,有很多下载链接,随便用。 最后,
[单片机]
Keil C51是如何支持双数据指针,有哪些特别的要求
在8051体系中,数据指针DPTR作为一个特殊的16位寄存器,用于寻址64 KB的XDATA或CODE空间,通常它被当作一个16位指针,指向一个常数表。双数据指针可以改善同时有两个16位指针使用时的性能。作为一种增强特性,有许多8051派生型器件支持双数据指针。以宏晶科技STC89系列的产品为例,DPTR被增强为DPTR0和DPTR1两个,仍然使用原来的地址,用另外一个SFR AUXR1的0位DPS来切换。当DPS位为0时,所有对DPTR的操作使用DPTR0;当DPS位为1时,所有对DPTR的操作使用DPTR1。这样,通过一个简单的INC AUXR1指令,就可以来回切换两个数据指针。 1 Keil C51对双数据指针的支持情况
[单片机]
STM32 SPI通信协议总结
简介 SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 SDO --主设备数据输出,从设备数据输入 SDI --主设备数据输入,从设备数据输出 SCLK --时钟信号,由主设备产生 CS --从设备使能信号,由主设备控制 工作过程: 1、主机启动发送过程,送出时钟脉冲信号 2、主移位寄存器的数据通过SD
[单片机]
stm32低功耗模式下IO口状态
1、睡眠模式(Cortex-M3内核停止,外设运行) 这个时候,如果不锁定IO的话,有外部触发的IO电平会改变。 2、停止模式(所有时钟停止) 这个时候,外设已经停止工作,保持原来的电平,锁不锁都一样 3、待机模式(1.8V电源关闭) 在此情况下,IO都是高阻,除了复位引脚和唤醒引脚电平会变化。 怪不得我的灯有时候一直亮着。
[单片机]
STM32——SPI接口
一、SPI协议【SerialPeripheral Interface】 串行外围设备接口,是一种高速全双工的通信总线。在ADC/LCD等与MCU间通信。 1、SPI信号线 SPI 包含 4 条总线,SPI 总线包含 4 条总线,分别为SS 、SCK、MOSI、MISO。 (1)SS(SlaveSelect):片选信号线,当有多个 SPI 设备与 MCU 相连时,每个设备的这个片选信号线是与 MCU 单独的引脚相连的,而其他的 SCK、MOSI、MISO 线则为多个设备并联到相同的 SPI 总线上,低电平有效。 (2)SCK (Serial Clock):时钟信号线,由主通信设备产生,不同的设备支持的时钟频率不一样,
[单片机]