General
Port Development Error Detect开发者错误检测是PORT_DEV_ERROR_DETECT宏定义的开关,一般打开就行。
Port SetPinDirection Api控制接口Port_SetPinDirection是否启用,一般打开就行。
Port SetPinMode Api控制接口Port_SetPinMode是否启用,一般打开就行。
Port VersionInfo Api控制PORT_VERSION_INFO_API宏定义的开关,决定Port_GetVersionInfo接口是否启用,一般打开就行。
Config Variant编译前后变量配置。如果是VariantPreCompile使用文件Port_Cfg.h和Port_Cfg.c,如果是VariantPostBuild,使用文件Port_Cfg.h和Port_PBcfg.c.
PortConfigSet
只需要有一个容器,名字随便取。生成的代码会按照名字Port_ConfigType类型的结构体,放在一个Port_ConfigSet结构体数组里面。
General
这里只需要写入使用到所有引脚的总数。
PortContainer
可以在里面进行分组,一般根据功能进行划分,右边是每组的引脚数量。
进来之后就是PortPin,每一个就是Port下面的一个Pin,每一组里面的Pin不需要都在同一个Port下面。
PortPin WeakPullDown弱下拉
PortPin WeakPullUp弱上拉
PortPin Safe Mode安全模式
PortPin Read Back Enable回读
PortPin HysteresisControl输入迟滞
PortPin Invert引脚反转
PortPin Direction Changeable运行时可以改变方向
PortPin ModeChangeable引脚模式是否可改变
PortPin Id是自己排序的,需要注意的是,这个id是在PortContainer里面的序号,而不是单独一个组里面的序号。举个例子:第一个组里面的pin有5个,占用PortPin Id 0~4,这样的话第二组的PortPin Id就需要从5开始,不能从0重新开始排序。
PortPin Nr是选择你使用的是哪个引脚,按照如下公式进行计算:
Channel = DioChannelId + DioPortId * 32
DioPortId是DIO端口的数字标识符,将为用于配置的引脚的每个端口引脚id生成符号名称。
PortA=0
PortB=1
PortC=2
PortD=3
PortE=4
DioChannelId是通过选择的值来选择端口中所选的通道DioPortId。
1个端口的最大通道数为32,所以DioChannelId的取值范围为:0 ~ 31。
例如:通道GPIO[35]可以在xls文件中找到,它连接到引脚PTB3。为了在Dio驱动中使用GPIO[35],对应的通道是DioChannelId = 3和DioPortId = 1(端口B通道3)。
PortPin Direction运行时可以改变引脚方向
PortPin InputLevelSelection输入引脚才需要选择,是TTL还是CMOS
PortPin OutputDriveControl输出引脚才需要选择,开漏,推挽之类的。
PortPin OutputEdgeRateControl输出引脚驱动的力度强中弱
PortPin Initial Mode默认模式
PortPin Level Value默认电平
PortPinMode如果不是复用功能,里面只需要新建一个,如果复用就新建多个。选择需要使用的功能即可。
ModuleOutputToInput
输出到输入模块,相当于从内部链接,一般用不上。
接口
Port_PinType类型的PinIndex入参都是生成的PortPin Id
Port_Init初始化的时候需要调用,入参是Port_ConfigType类型的结构体指针。
Port_SetPinDirection改变引脚方向
Port_RefreshPortDirection初始化完成之后,刷新所有已配置引脚的方向,程序将不刷新那些被配置为"运行时可改变引脚方向"的端口引脚。
Port_SetPinMode运行时改变引脚模式
Port_AddPinMode增加引脚模式
Port_GetVersionInfo获取版本信息,需要传入一个Port_GetVersionInfo类型的结构体指针。
Port_SetPinMode设置引脚模式
Port_ResetPinModes重置引脚模式
Port_SetPinMSCRValue改变MSCRIO寄存器值
代码小记
Port_UnusedPinsArray是没有使用到的pin,填入固定的PortPin Nr。
Port_UnusedLowPowerPinsArray使用低功耗的pin
Port_LLD_PinConfigDefault包含所有已配置的pin的信息
Port_Modes_Pinx里面的x对应PortPin Nr,可以在里面选择对应的模式