STM32是意法半导体的一款32位微控制器,其具备高性能、低功耗、易扩展等优点,在嵌入式系统开发中得到了广泛应用。而LL库(Low Layer库)是STM32固件库的子集,主要用于对ST微控制器外设的底层编程。LL库提供了一组简化的、高效的API,基于这些API可以方便地控制STM32微控制器的外设。由于LL库直接操作底层寄存器,在代码大小和执行速度方面,与标准库相比更为优秀。
① 高精度时钟控制:LL库可以直接操纵时钟寄存器实现复杂的时钟控制,同时可以通过配置时钟倍频、分频实现精确的时钟控制。
② 强大的ADC控制:对于ADC配置,LL库提供了多种模式选择,并支持DMA传输,可以大大提高ADC转换效率。
③ 高效的串口通讯:LL库提供了多种UART、SPI、I2C等串口通讯接口,支持硬件流控、DMA传输,使得通讯效率更高。
使用LL库一般需要先执行以下几个步骤:
① 导入LL库头文件,包含需要使用的外设所对应的头文件,例如使用USART时需要包含stm32f4xx_ll_usart.h;
② 配置需要使用的外设,通过调用相应寄存器的各种配置函数实现;
③ 调用使能函数,开始使用LL库中定义的API接口。
相比LL库而言,HAL库(High Layer库)是对LL库更高层次的封装,提供了更为简洁易用的API,大多数配置只需一行代码便可完成。在开发中,开发者可以通过修改宏定义的方式来实现更具体的配置,同时还可以自由切换LL库和HAL库。 与HAL库相比,LL库的优点在于更加灵活,可以更加精细地控制微控制器的外设,而整个 LL库大小只有15K左右,同时具有快速处理、高性能等优点。最终需要根据实际的开发需求,选择不同的库去进行开发