上一篇把Port模块的引脚配置讲了一遍。输入、输出、上下拉、复用模式和初始电平都确定以后,接下来的问题更直接:软件怎样读取一根线,又怎样让一根控制线变成高或低?在传统单片机程序中,这件事可能是一条寄存器语句。在AUTOSAR工程里,我们通常通过Dio接口完成。最常见的两种调用是Dio_ReadChannel和Dio_WriteChannel,但要让它们在实际板上产生预期结果,还需要把通道配置、Port状态、外围电路和调用位置连接起来。下面继续以AURIX TC377为例,先从工程里的真实Dio配置入手,再完成单通道读写、整端口与通道组的使用分析。重点放在配置与代码如何对应、读写操作改变了什么,以及怎样确认引脚和外部器件真正按要求工作。一、从一根引脚,走到一个Dio通道Port确定工作方式,Dio操作数字数据P23.5连接外部LIN器件的SLP_N控制端。Port已经把它配置为GPIO输出、推挽,初始锁存值为低。此时,运行软件如果需要改变这根控制线的电平,就通过对应的Dio通道写入STD_HIGH或STD_LOW。Port决定引脚怎样工作,Dio提供数字状态的读取和写入。这两层要配合:写入一个数字值不会自动把输入脚变成输出,也不会自动把外设复用输出变成GPIO。需要完成的事情配置或操作位置对引脚的作用选择输入还