控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,
深圳龙华
1
UM1029 用户手册
通讯外设应用库 (CPAL)
介绍
本文的作用是为了解释 CPAL 的体系结构和执行 (通讯外设应用库).
CPAL 是一个为 STM32 通讯外设(I2C)提供高层 API 接口的库。它为每个设备提供了一个
CPAL 驱动,用户可以通过对工程模板进行剪裁建立一个新的工程,其中的例子用于告诉用
户如何使用和配置 CPAL 的驱动。
控制系统硬件设计、软件编程(51,PIC,STC,STM32,GPS)、机械结构设计,联系方式:QQ394347949,
深圳龙华
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 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 中断优先级 ............................................................... 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)、机械结构设计,联系方式:QQ394347949,
深圳龙华
3
6.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_Direction 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
Table 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 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
Figure 9. 基于 EEPROM 例子的流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Figure 10. 双板通信例子的流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Figure 11. 高级通信例子的流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53