KW41Z例程(thread end device)学习:SerialManager
# KW41Z例程(thread end device)学习:SerialManager# 简介
通过IDE导入无线例程里的thread end device例程,得到以下工程:
串行接口管理器位于framework里面,串行接口管理器目录结构如下:
从目录结构可以看出,串行接口管理器可以管理I2C、SPI和串口,关于管理器相关的文档,没有去查找,而是直接通过阅读分析源码进行分析的,如果直接连接的同学可以帮忙补充一下文档链接。
SerialManager是一个串行总线的抽象层,通过SerialManager可以隔离硬件驱动与应用。
# 主要接口相关介绍
函数|功能
:-:|:--
SerialManager_Init|用于创建管理器任务以及初始化管理器内部使用的一些数据结构。
Serial_InitInterface|串行接口初始化函数。
Serial_SetBaudRate|波特率(通讯速度)设置。
Serial_RxBufferByteCount|获取接收缓存字节数。
Serial_SetRxCallBack|设置接收回调函数。
Serial_Read|读取(接收)数据。
Serial_SyncWrite|同步写(发送)。
Serial_AsyncWrite|异步写(发送)。
关于串行管理器的使用案例,可以参考shell.c里面的shell_init函数,内部对shell串口进行了接口初始化、设置波特率和设置回调函数。
serial的read和write分别封装在shell_ProcessChr和shell_writeN里面,其中write使用的是同步发送接口。
串行设备的定义可以参考默认配置,默认配置位于SerialManager.c的268~331行,里面定义了默认的I2C和SPI,串口可以参考shell里面的串口定义。
# 流程简介
```seq
应用->SerialManager:SerialManager_Init(设备类型,设备号)
SerialManager->应用:接口ID
应用->SerialManager:Serial_xxx(接口ID,参数)
SerialManager->应用:执行结果
```
由于SPI、I2C和串口的适配程序以及实现了,所以应用层直接使用上面的流程进行串行设备的使用就可以了,简化了串行设备的使用流程,统一了变成风格,降低使用的学习成本。
页:
[1]