AUTOSAR MCAL 配置说明 · 模块③ Dio
原始 Flomo:https://v.flomoapp.com/mine/?memo_id=MjU1NzIxMDA2
AUTOSAR MCAL 配置说明 · 模块③ Dio
Dio 是数字 I/O 的 逻辑读写 模块,面向「读一个引脚的逻辑电平 / 写一个引脚的逻辑电平」。它不配方向、不复用——那些是 Port 的事。
核心职责:单通道读写、整端口读写、翻转电平。
关键配置项:
- DioPort:端口定义,逻辑上把一批物理引脚归组。
- DioChannel:通道配置,把一个逻辑通道映射到具体物理引脚(通过底层 Port 分配)。
- DioPortDataPort / DioPortMask:端口数据访问与掩码。
- DioChannelGroup(可选):多个通道合成的组合通道。
常用 API:
- Dio_ReadChannel / Dio_WriteChannel:读 / 写单通道逻辑电平。
- Dio_ReadPort / Dio_WritePort:整端口读写。
- Dio_FlipChannel:翻转某通道。
- Dio_GetVersionInfo:版本信息。
配置思路:
- 定义逻辑通道(DioChannel)并映射到物理引脚(底层由 Port 分配引脚)。
- 运行时用 Dio_ReadChannel / Dio_WriteChannel 读写逻辑电平。
- 大量同组 I/O 时用整端口读写提高效率。
常见坑:
- Dio 通道没对应到正确引脚 → 读写的是别的引脚。
- 方向配错(Port 里配成输入,Dio 却想写)→ 写无效、读回还是输入状态。方向在 Port、读写才在 Dio。
- Dio_WritePort 是整端口写——小心读改写破坏其他位。位操作与端口操作别混用。
- Dio 只管电平,不管复用。用了复用外设功能的引脚(如 CAN、ADC 引脚)别再用 Dio 读写。
Dio 与 Port 区分:Port = 配置层(方向、复用、上下拉);Dio = 逻辑读写层(读电平、写电平)。Dio 不配引脚功能。
📎 上一个(Port):https://v.flomoapp.com/mine/?memo_id=MjU1NzIwOTQ1
📎 总览:https://v.flomoapp.com/mine/?memo_id=MjU1NzIwNjEy
📎 专题入口:https://v.flomoapp.com/mine/?memo_id=MjU1NzIwMTcx