STM32F1 HAL库笔记1_HAL 驱动程序概述(2)

1、LL驱动程序概述        

        LL驱动程序旨在提供快速、轻量级、面向专家的层,它比 HAL 更接近硬件。与 HAL 相反,LL API 不适用于以下外设:不需要代码优化的外设,软件配置复杂的外设,复杂的上层堆栈(如 USB)的外设。

        LL 驱动程序特征:

        一组初始化函数,用于根据数据结构中指定的参数初始化外设主要功能

        一组初始化函数,用于用每个字段的重置值填充初始化数据结构

        执行外设去初始化的函数(外设寄存器恢复为默认值)

        一组内联函数,用于直接和原子寄存器访问

        完全独立于 HAL,因为 LL 驱动程序可以在独立模式下使用(无 HAL 驱动程序)或混合模式(有 HAL 驱动程序)

        完全覆盖了支持的外设功能。

        LL驱动程序根据 STM32 外设的可用功能提供硬件服务。这些服务完全反映了硬件功能,并提供必须按照微控制器系列参考手册中描述的编程模型调用的一次性操作。因此, LL 服务不实现任何处理,也不需要任何额外的内存资源来保存其状态、计数器或数据指针:所有操作都是通过更改相关的外设寄存器内容来执行的。

2、LL驱动程序文件

        LL驱动程序是围绕头文件/C 文件(每个支持的外设一个)和五个头文件构建的,用于一些系统和 Cortex 相关功能。

stm32f1xx_ll_bus.h 		//这是用于内核总线控制和外设时钟激活和停用的 h 源文件 示例: LL_AHB2_GRP1_EnableClock 
stm32f1xx_ll_ppp.h/.c 	//stm32f1xx_ll_ppp.c 提供外设初始化功能,如 LL_PPP_Init()、LL_PPP_StructInit()、LL_PPP_DeInit()。所有其他 API 都在 stm32f1xx_ll_ppp.h 文件中定义。底层 PPP 驱动程序是一个独立的模块。要使用它,应用程序必须将其包含在 stm32f1xx_ll_ppp.h 文件中。
stm32f1xx_ll_cortex.h 	//Cortex-M 相关的寄存器操作 API,包括 Systick、低功耗 (LL_SYSTICK_xxxxx LL_LPM_xxxxx “低功耗模式” ...) 
stm32f1xx_ll_utils.h/.c //本文件涵盖
Version: 2.2.0 (2021-07-22) Keil.STM32F3xx_DFP.2.2.0.pack Updated Pack to STM32Cube_FW_F3 Firmware Package version V1.11.2: Updated HAL to version V1.5.5. External interrupts and events (EXTI) HAL Universal serial bus full-speed device interface (USB) LL Added global define USE_HAL_DRIVER and USE_FULL_LL_DRIVER to the component ::Device:STM32Cube Framework:STM32CubeMX. Added global define USE_HAL_DRIVER and USE_FULL_LL_DRIVER to the component ::Device:STM32Cube HAL:COMMON. STM32CubeMX integration: MX_Device_h.ftl: Updated parsing of USART virtual mode. Updated generation of macros: Added handling for '(' and ')' symbols. FrameworkCubeMX_gpdsc.ftl: Added support for Timebase Source TIMx. Board Examples: Terminating app_main thread with osThreadExit() to avoid endless loop. Updated RTX configuration (CMSIS 5.8.0). Updated template based files (MDK-Middleware 7.13.0). Configured MDK projects to use Arm Compiler 6. Changed Assembler option to armclang (Auto Select). Updated all USB Host/Device examples with user templates from MDK-Middleware v7.11.1. FileSystem, USB: Changed variant selection to "MDK-Plus". Updated Graphics examples to use Segger emWin version 5.50. CMSIS Driver: CAN: Corrected SetBitrate function to leave Silent and Loopback mode as they were. Corrected SetMode function to clear Silent and Loopback mode when NORMAL mode is activated. Corrected MessageSend function to only access required data for sending. Corrected abort message send functionality. I2C: Corrected pin configuration: MX_I2Cx_SMBA_GPIO_PuPdOD replaced with MX_I2Cx_yyy_GPIO_PuPdOD. Corrected usage function name USB Device: Corrected transmitted count for non-control IN endpoints. Updated USBD_EndpointConfigure function to check that maximum packet size requested fits into configured FIFO (compile time configured). Removed include of stm32f3xx_hal_pcd.h header.
介绍 STM32CubeTM是意法半导体的一项原始计划,旨在通过减少 开发工作,时间和成本。 STM32CubeTM涵盖了STM32产品组合。 STM32CubeTM版本1.x包括: STM32CubeMX,一种图形软件配置工具,允许生成C初始化 使用图形向导编写代码。 每个系列都提供了一个全面的嵌入式软件平台(例如STM32CubeF4 STM32F4系列) STM32Cube HALSTM32抽象层嵌入式软件,可确保最大化 跨STM32产品组合的可移植性 一套一致的中间件组件,例如RTOS,USB,TCP / IP,图形 所有嵌入式软件实用程序均附带全套示例。 HAL驱动程序层提供了一组通用的多实例简单API(应用程序编程) 接口)与上层(应用程序,和堆栈)进行交互。它由通用组成 和扩展API。它是直接基于通用体系结构构建的,并允许构建层, 例如中间件层,以实现其功能,而无需深入了解如何使用 单片机这种结构提高了代码的可重用性,并保证了在其他上的轻松移植 设备。 HAL驱动程序包括一整套现成的API,可简化用户应用程序 实施。例如,通信外围设备包含用于初始化和配置的API 外设,以基于轮询管理数据传输,处理中断或DMA,以及管理 通讯错误。 HAL驱动程序API分为两类:提供通用和通用的通用API 所有STM32系列和扩展API的函数,其中包括特定的和自定义的函数 给定的家庭或零件号。 HAL驱动程序是面向功能的,而不是面向IP的。例如,计时器API分为 IP提供的功能包括以下几类:基本计时器,捕获,脉冲宽度调制 (PWM)等。 驱动程序源代码是在严格的ANSI-C中开发的,使它独立于 开发工具。使用CodeSonarTM静态分析工具进行检查。它是有据可查的,并且 符合MISRA-C 2004。 HAL驱动程序层通过检查所有输入值来实现运行时故障检测 功能。这种动态检查有助于增强固件的鲁棒性。运行时检测 也适用于用户应用程序开发和调试。 本用户手册的结构如下: HAL驱动程序概述 每个外围设备驱动程序的详细描述:配置结构,功能以及使用方法 给定的API来构建您的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值