STM3通信外设应用级库函数_CPAL_I2C库_中文说明(PDF57页).pdf
《STM3通信外设应用级库函数_CPAL_I2C库_中文说明(PDF57页).pdf》由会员分享,可在线阅读,更多相关《STM3通信外设应用级库函数_CPAL_I2C库_中文说明(PDF57页).pdf(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 1UM1029 用户手册用户手册 通讯外设应用库(CPAL)介绍介绍 本文的作用是为了解释 CPAL 的体系结构和执行(通讯外设应用库).CPAL 是一个为 STM32 通讯外设(I2C)提供高层 API 接口的库。它为每个设备提供了一个CPAL 驱动,用户可以通过对工程模板进行剪裁建立一个新的工程,其中的例子用于告诉用户如何使用和配置 CPAL 的驱动。控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347
2、949,深圳龙华 2 目录目录 1、CPAL 概述.6 2 CPAL 结构体系描述.7 2.1 CPAL 应用层次.7 2.2 通信层.9 2.2.1 CPAL 主要结构(cpal.h).10 2.2.2 CPAL 通信函数(cpal_ppp.c/.h).16 2.3 用户应用接口.18 2.3.1 配置接口(cpal_conf.h).18 2.3.2 用户回调接口(cpal_usercallback.c).22 3 CPAL 函数描述.27 3.1 结构.27 3.1.1 CPAL_PPP_Init()功能描述.27 3,1,2 CPAL_PPP_DeInit()功能描述.28 3.1.3
3、CPAL_PPP_StructInit()功能描述.29 3.2 通信.30 3.2.2 CPAL_PPP_Write()功能描述.32 3.2.3 CPAL_PPP_IsDeviceReady()功能描述.32 3.2.4 CPAL 中断和 DMA 管理.33 3.3 事件和错误管理(用户回调函数).34 3.3.1 超时管理.36 4 如何逐步的使用和配置 CPAL 库.38 4.1 基本配置.38 4.1.1 选择要使用的外设.38 4.1.2 配置传输选项.39 4.1.3 选择和配置用户和错误回调.39 4.1.4 配置超时管理.39 4.1.5 设置事件,错误,DMA 中断优先级.
4、40 4.1.6 配置日志宏.40 4.2 结构初始化.41 4.3 通信.41 4.4 错误管理.42 4.5 高级配置.43 4.5.1 选择外设 IO 口.43 4.5.2 选择 TX 和 RX DMA 通道.43 4.5.3 设置事件,错误,DMA 中断优先级.43 5 CPAL 应用举例(逐步的).44 5.1 起点.44 5.2 cpal_conf.h.44 5.3 cpal_usercallback.c.46 5.4 main.c.47 6 CPAL 例子.49 6.1 基本 EEPROM 例子.50 控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结
5、构设计,联系方式:QQ394347949,深圳龙华 36.2 双板通信的例子.51 6.3 高级通信的例子.52 7 CPAL 组件的内存分布.53 8 常问的问题.54 9 版本历史.56 免责声明.57 控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 4 表单表单 Table 1.CPAL 文件描述.9 Table 2.CPAL_InitTypeDefstructure.11 Table 3.CPAL_Dev field values(CPAL_Dev 字段值).12 Table 4.CPAL_Directi
6、on field values.12 Table 5.CPAL_Mode field values.12 Table 6.CPAL_ProgModel field values.12 Table 7.CPA_TransferTypeDef structure fields.13 Table 8.CPAL_State field values.13 Table 9.wCPAL_DevError field values(for I2C peripherals).14 Table 10.wCPAL_Options field values.15 Table 11.CPAL 通信层架构.16 Tab
7、le 12.CPAL 通信层功能列表.17 Table 13.CPAL 配置部分.18 Table 14.CPAL 配置部分.23 Table 15.HAL 配置部分.24 Table 16.CPAL 底层接口功能说明.25 Table 17.CPAL_PPP_Struct_Init()默认值.30 Table 18.I2C 中断管理秩序.34 Table 19.DMA 中断管理秩序.35 Table 20.CPAL I2C 用户回调列表.36 Table 21.CPAL 例子里使用的硬件资源.51 Table 22.CPAL 单元的内存分配.54 Table 23.常见问题.55 Table
8、 24.历史版本.57 控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 5图表图表 Figure 1.CPAL 库架构.7 Figure 2.CPAL 库结构层次.8 Figure 3.CPAL 选项.16 Figure 4.CPAL_PPP_Init()流程图.28 Figure 5.CPAL_PPP_DeInit()流程图.29 Figure 6.CPAL_PPP_Read()流程图.32 Figure 7.CPAL_I2C_Write()流程图.33 Figure 8.CPAL PPP 超时管理流程图.38
9、 Figure 9.基于 EEPROM 例子的流程图.52 Figure 10.双板通信例子的流程图.52 Figure 11.高级通信例子的流程图.53 控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 61、CPAL 概述概述 编制 CPAL 的目的是:提供一个直观的,易于使用和实用的 API(INIT,Deinit,Read,Write):CPAL 内部的底层驱动程序负责管理通信所需的所有外设(I/O 引脚,时钟,中断向量表,DMA 通道.)通信的执行也是由 CPAL 内部驱动管理(通信头,地址发送,中断和
10、DMA 控制,出错管理)。所有的应用都是通过一个配置结构进行操作和监控(每个外设都使用单独的结构实例),它保持所有必要的配置参数(外围配置,缓存地址和大小),以及当前通信状态和错误状态。为外设提供了一个高效的完善的通信和容错管理单元。外围事件及错误由底层驱动进行管理,同时允许用户加入自定义代码对事件和错误进行处理。各种通信错误还可被超时机制管理,用户可以配置这个应用。提供高层次的定制和集成功能:使用独立的静态配置,使得当某些选项不被使用时可以缩小代码量(比如控制使用外设的数量,管理模式:禁用 10 位寻址,通用调用.)。通过一个独立的控制结构可以动态的、简单的实现对外设及通信的使能和失能。若干
11、个用户回调函数:CPAL 驱动对函数作为声明和调用,用户应用程序在需要的时候可以调用它们。这些功能允许用户应用程序执行特定的与通信、事件、错误相关的操作。提供一个设备抽象层。CPAL 库支持 STM32 系列芯片。通过 CPAL 的调试选项 CPAL_DEBUG 提供了一个高效简单的调试功能:通过自定义宏调试消息发送。日志消息在每个操作完成的时候可以被 CPAL 驱动发送出来(这个自定义宏可被定义为消息通过串口发送,通过 IDE 接口发送,显示到 LCD 屏幕)。为了最优化 CPAL 驱动的性能,所有的操作,除了设置初始化,其余的都是直接对寄存器进行访问。控制系统硬件设计、软件编程(51,PI
12、C,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 72 CPAL 结构体系描述结构体系描述 2.1 CPAL 应用层次应用层次 CPAL 库包含三个层 用户应用层:允许用户定制 CPAL 库和使用回调函数。该层包含了用户可根据需要进行修改的文件。通信层:包含了每个外设(I2C)的通信 API 接口。HAL 层:硬件抽象层(HAL),它允许不同的控制寄存器对外设进行独立的控制。后面的章节将对每一个层进行详细介绍。注:CPAL库里的模板文件用于提供用户接口。你可以根据需要对其作修改。CPAL 库的软件包包含 3 个主要的文件夹:STM32_CPAL_Dri
13、ver:位于与CMSIS文件夹和STM32标准外设驱动文件夹同层的目录内。此 文 件 夹 包 含 所 有 的 CPAL 驱 动 文 件 和 头 文 件,以 及 用 户 的 模 板 文 件(cpal_conf_template.h 和 cpal_usercallback.c)。STM32_CPAL_Examples:位于项目文件夹内。这个文件夹包含了 STMicroelectronics为用户提供的通过使用 CPAL 库实现每个外设通信应用的例子。STM32_CPAL_Template:位于项目文件夹中。此文件夹包含一个模板(空)项目,可让你使用 CPAL 库驱动程序开始一个新的项目。控制系统硬
14、件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 8 Figure 2.CPAL 库结构层次 控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 9下表中列出了库里的文件。在后续的章节中有详细的描述。Table1.CPAL 文件描述文件描述 层 文件名 描述 用户应用层 cpal_conf.h 用户文件,用户可修改、定制、配置 CPAL 库驱动。在 Project/STM32_CPAL_Template project 内在一个它的模板,在每个 C
15、PAL 的例子里有说明。cpal_usercallback.c 包含了用户需要的回调应用程序。如果不需要回调功能,这个文件就没用(注释掉未使用的功能)。通信层 cpal.h 它包含了结构体定义和全局结构体定义(作为外部变量)。它也包含了所有选项的定义。cpal_ppp.c 其中 PPP 被替换为”I2C”。这个文件包含了对外设的主要操作功能(初始化,恢复默认,读,写)。它也包含所有相关的外设的中断处理程序(外设和 DMA中断)及错误管理功能。cpal_ppp_.h 其中 PPP 被替换为”I2C”。这个是 cpal_ppp.c 程序的头文件。它包含了外围设备的错误定义。硬件抽象层 cpal_h
16、al.c 包含外设的所有底层驱动。cpal_ppp_hal_stm32xxxx.c其中 PPP 被替换为”I2C”。其中 xxxx 是该器件系列标识符(例如 stm32f10 x),。此文件提供了底层功能,为控制 PPP 系列器件的外设。cpal_ppp_hal_stm32xxxx.hPPP 可以被替换为“I2C”,其中 xxxx 是该器件系列标识符(例如 stm32f10 x)。该文件提供了底层的配置选项(IO 选择,DMA 通道选择,中断配置),以及用于底层外设控制的宏定义。此文件可根据需要进行修改,以便使用不同的 IO 脚,DMA 通道 2.2 通信层通信层 CPAL 通信层包含了用户程
17、序可调用的所有功能的接口(APIs)。它被包含在下列文件内(PPP可以被替换为“I2C”):cpal.h cpal_ppp.c cpal_ppp.h 重要注意事项:所有 PPP(I2C)的中断处理程序和所有相关的 DMA 中断处理程序在 CPAL 库内已被声明和管理。用户程序不必也不能再次声明这些中断程序。如果这些处理程序需要用于其它目的(例如一个 DMA 中断被多个外设使用)用户程序需要使用相关的回调程序。中断优先级和抢占规则也由 CPAL 驱动管理。要配置这些参数,请修改 cpal_conf.h 文件。控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联
18、系方式:QQ394347949,深圳龙华 102.2.1 CPAL 主要结构主要结构(cpal.h)CPAL 库提供了一个唯一的结构来包含所有需要的参数:配置外设 用它来通信 监视 CPAL 驱动和外设状态 这个结构的声明是在 cpal.h 文件里,它是所有驱动功能的唯一参数。每个外设都有一个独立的结构用于保持它的配置参数以及相关的传输参数和状态。这此结构被声明在驱动文件内,同时在 capl.h 文件内声明为外部结构(因此,在你的应用程序文件内要在它们声明)。例子:#ifdef CPAL_USE_I2C1 extern CPAL_InitTypeDef I2C1_DevStructure;#e
19、ndif/*CPAL_USE_I2C1*/#ifdef CPAL_USE_I2C2 extern CPAL_InitTypeDef I2C2_DevStructure;#endif/*CPAL_USE_I2C2*/CPAL 配置结构如下:typedef struct CPAL_DevTypeDef CPAL_Dev;CPAL_DirectionTypeDef CPAL_Direction;CPAL_ModeTypeDef CPAL_Mode;CPAL_ProgModelTypeDef CPAL_ProgModel;CPAL_TransferTypeDef*pCPAL_TransferTx;CP
20、AL_TransferTypeDef*pCPAL_TransferRx;_IO CPAL_StateTypeDef CPAL_State;_IO uint32_t wCPAL_DevError;uint32_t wCPAL_Options;_IO uint32_t wCPAL_Timeout;I2C_InitTypeDef*pCPAL_I2C_Struct;CPAL_InitTypeDef;Table2 给出了结构字段的详细介绍.控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 11Table 2.CPAL_Ini
21、tTypeDef structure 字段类型 字段名 描述 CPAL_DevTypeDef CPAL_Dev 此字段定义了受此结构体配置和控制的外设。CPAL_DirectionTypeDef CPAL_Direction 此字段定义了相关外设支持的传输方向(只发送,只接收,双向)。此参数不指示当前传输器的传输方向,只定义了外设支持的方向。Table4 列出了该字段可设置的值。CPAL_ModeTypeDef CPAL_Mode 选择外设的工作模式:主模式或从模式。这个定义了相关外设是否发送或等待直到接收到另一个主模式端发来的数据。Table5 列出了该字段可设置的值。CPAL_ProgMo
22、delTypeDef CPAL_ProgModel 选择下一次传输的工作模式:中断(外设传输中断将管理所有传输和外设以及驱动状态)或者 DMA(所有数据传输均通过 DMA 通道完成,CPU 被释放,可用于执行其它任务)。Table6 列出了该字段可设置的值。注意:对于 I2C,当启用 DMA 模式时,其地址取址不受 DMA 管理,仅由中断管理。CPAL_TransferTypeDef*pCPAL_TransferTx此字段指向一个用于保存传输器的发送参数(缓存地址和数据字节数)Table7 列出了该字段可设置的值。CPAL_TransferTypeDef*pCPAL_TransferRx此字段
23、指向一个用于保存传输器的接收参数(缓存地址和数据字节数)Table7 列出了该字段可设置的值。_IO CPAL_StateTypeDef CPAL_State 此字段保存了由 CPAL_Dev 字段字义的外设的当前状态。第 3.3 节有更详细的描述。Table8 列出了该字段可设置的值。注意:在处理了外设错误(清除标志并使外设返回正常状态)之后,要更新这个字段,以便外设能够继续正常工作。_IO uint32_t wCPAL_DevError 此字段保存了由 CPAL_Dev 字段字义的外设的的错误码。Table9 列出了该字段可设置的值。注意:在处理了外设错误(清除标志并使外设返回正常状态)之
24、后,要更新这个字段,设置成 CPAL_I2C_ERR_NONE 以便外设能够继续正常工作。控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,深圳龙华 12uint32_t wCPAL_Options 此字段用于配置传输器配置的附加选项。Table10 列出了这些选项。这些值的任何组合都可以用于这一字段(相对于每个选项有关的条件)_IO uint32_t wCPAL_Timeout 此字段用于超时检测。它保存了超时计数值。I2C_InitTypeDef*pCPAL_I2C_Struct此字段指向一个标准外设库里定义的外设配置结
25、构。它只能设置一个值。下表描述了每个字段可以赋的值。Table 3.CPAL_Dev 字段的值 字段值 描述 CPAL_PPPx-PPP=外设类型(I2C)-x=外设实例(1 or 2 or 3)此字段的值信赖于可用的外设微控制器和 cpal_conf.h 文件里CPAL_USE_PPPx 的功能定义。Table4.CPAL_Direction 字段的值 字段值 描述 CPAL_DIRECTION_TX 所选外设只允许发送 CPAL_DIRECTION_RX 所选外设只允许接收 CPAL_DIRECTION_TXRX 所选外设为双向的 Table5.CPAL_Mode 字段的值 字段值 描述
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM3 通信 外设 应用 库函数 _CPAL_I2C 中文 说明 PDF57
限制150内