include "math.h" include "stdio.h" 主要就是printf函数在串口上的应用: 以正点原子的程序模版为例: 在usart.c中定义了把printf和串口一输出相关联的函数: 如果你注释掉这段话,但程序上使用了printf,虽然软件编译不会报错,但是硬件上 STM32 是无法启动的,这段代码最好不要去修改。 若要映射到其他串口,只要...
在usart.c中定义了把printf和串口一输出相关联的函数: //加入以下代码,支持printf函数,而不需要选择use MicroLIB#if1#pragmaimport(__use_no_semihosting)//标准库需要的支持函数struct__FILE{inthandle;};FILE __stdout;//定义_sys_exit()以避免使用半主机模式void_sys_exit(intx){x=x;}//重定义fputc函数i...
说实话,HAL相对标准外设库来说确实存在代码效率不高、代码量大灯这些问题,那么与之对应的STM32Cube LL恰好避免了这样的问题。 2LL能高效的原因 简单总结一下原因:巧妙运用C语言静态、内联函数直接操作寄存器。 当然,这是其中重要的原因,还有一些其它原因,这里暂不描述。 你会在LL库.h文件中发现大量类似,静态、内...
在src和inc文件夹里的就是ST公司针对每个STM32外设而编写的库函数文件,每个外设对应一个 .c 和 .h 后缀的文件。 我们把这类外设文件统称为:stm32f10x_ppp.c或stm32f10x_ppp.h文件,ppp表示外设名称。如在上一章中我们自建的stm32f10x_gpio.c及stm32f10x_gpio.h文件,就属于这一类。 如针对模数转换(ADC)...
Standard Peripheral Library:简写SPL,也叫标准外设库 。 相信学习过STM32的朋友,对标准外设库都不陌生,是一组外围设备的C语言代码集合。 (因为现在ST官方主推STM32CubeMX,所以停止了对SPL的更新) 标准外设库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。
文件目录:STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template在这个文件目录下,存放了官方的一个库工程模板,我们在用库建立一个完整的工程时, 还需要添加这个目录下的stm32f10x_it.c 、stm32f10x_it.h 、stm32f10x_conf.h 和system_stm32f10x.c 这四个文件。
STM32标准库可以从官网获得; 在使用库开发时,我们需要把 libraries 目录下的库函数文件添加到工程中,并查阅库帮助文档来了解 ST 提供的库函数,这个文档说明了每一个库函数的使用方法。 这两个文件夹中,还有一个很特别的 misc.c 文件,这个文件提供了外设对内核中的NVIC(中断向量控制器)的访问函数,在配置中断时,...
用cjson的库去解析数据 最近项目用到cjson的库去解析数据,当解析的的数据比较长时,会解析失败,但是短的数据则没有问题,后面排查是因为cjson解析需要用到的内存比较大,溢出导致解析失败。在默认stm32的keil工程中 leopard530 2022-01-12 06:14:53
使用标准库重写LED的程序 voidLED_Init(){ RCC->APB2ENR =0x00000010; GPIOC->ODR =0x00000000; GPIOC->ODR =0x000000aa; } 对硬件进行了封装 RCC模块的标准库解析 位带操作:将其中一位对应到一个u32的区域,bitband操作 bit mask:位掩码,事先把设定的数提前封装好。
MicroLIB是KEIL自带的简易库 如使用printf函数,会从串口1输出字符串,直接默认定向到串口1 MicroLIB是缺省C库的备选库。它用于必须在极少量内存环境下运行的深层嵌入式应用程序。这些应用程序不在操作系统中运行 MicroLIB不会尝试成为符合标准的ISOC库,MicroLIB进行了高度优化以使代码变得很小。它的功能比缺省C库少,并且...