AutoSAR基础:Port与Dio

一.配置port

MCU的管脚操作程序主要以AutoSAR生成为主,熟料配置Port是AutoSAR架构下MCU开发的基础。

1.Configurator

1-1.进入Basic Editor->Port

    结合Infineon-TC39x-DataSheet-v01 手册可以,TC397具有17组普通port口

图1

图1

1-2.配置P00.0脚

    把P00.0配置为CAN10_TXD通信脚。

图2

图2
ALT5指代O5:

在这里插入图片描述

图3
1-2-1.Port口
在Short Name处填入合适的名称;
	在Number处填入port口编号,仅便于识别Port用;
	在Number Of Port Pins处填入该组的管脚个数;

在这里插入图片描述

图4
1-2-2.Pin脚配置
pin controller select选择DISABLE,统一不使能控制器选择;
Pin Direction选择PIN脚OUT/IN(输出与输入)模式;
pin enable analog input only(引脚只允许模拟输入),作为普通管脚选择DISABLE(不使能);
pin Id填入PIN脚号,该为0组第0号脚所以填入0;
pin Inittial Mode结合图2与图3可知,配置为CAN的TXD选择ALT5;
pim Output Pin Driver Mode选择输出方式,此处选择推挽输出;

在这里插入图片描述

图5

1-3.配置P00.1

在这里插入图片描述

图6

在这里插入图片描述

图7
1-3-1.Pin脚配置
pin controller select选择DISABLE,统一不使能控制器选择;
Pin Direction选择PIN脚OUT/IN(输出与输入)模式,此处选择为输入模式;
pin enable analog input only(引脚只允许模拟输入),作为普通管脚选择DISABLE(不使能);
pin Id填入PIN脚号,该为0组第1号脚所以填入1;
pin Inittial Mode结合图6与图7可知,配置为普通管脚GPIO;
pin Input Pull Resistor(引脚输入拉阻器)此处选择管脚为上拉输入模式;
pin Level Value(引脚电平值)选择LOW;

在这里插入图片描述

图8 PIN配置

2.config导出生成代码

在这里插入图片描述

图9 Generate

3.代码部分

3-1.config生成代码

在这里插入图片描述

图10 port代码

3-2.Write与Read

//写
void Dio_WriteChannel(const Dio_ChannelType ChannelId,const Dio_LevelType Level);
//读
typedef uint8 Dio_LevelType;
Dio_LevelType Dio_ReadChannel(const Dio_ChannelType ChannelId);
3-2-1.Read函数
以P23.6脚为例:
	Dio_LevelType Port_Type;
	Port_Type = Dio_ReadChannel(0x176);//0x17=23,0x6=6为P23.6
	第410行:PortNumber = Dio_lGetPortNumber(ChannelId);读取port号0x17=23;
	第412行:PinNumber = Dio_lGetPinNumber(ChannelId);读取PIN脚为0x6=6;
	第447-461行读取处该管脚的电平;

在这里插入图片描述

图11 Read函数
3-2-2.Write函数
以P23.6脚为例:
	Dio_WriteChannel(0x176,1);//0x176指代P23.6脚;1为输出高,可知0为输出低;
	第524行:PortNumber = Dio_lGetPortNumber(ChannelId);读取port号0x17=23;
	第526行:PinNumber = Dio_lGetPinNumber(ChannelId);读取PIN脚为0x6=6;
	第538-597行设置该管脚的电平;

在这里插入图片描述

图12 Write函数

二.配置Dio

Dio主要为Port定义后的管脚定义别名,便于程序调用。

1.Configurator

1-1.进入Basic Editor->Dio

定义IC为TC397
在这里插入图片描述

图13 Dio

定义Port Id号
在这里插入图片描述

图14 Port ID

1-2.定义Dio口

Dio是对Port的别名定义
在Port0组内IN_CAN2MCU_1_INH为Pin10号脚。

在这里插入图片描述

图15

2.Config导出代码

在这里插入图片描述

图16

3.代码部分

IN_CAN2MCU_1_INH为P00.10脚。
在这里插入图片描述

图17

读写函数同3-2-1与3-2-2 :

读:
Dio_LevelType Port_Type;
Port_Type = Dio_ReadChannel(DioConf_DioChannel_IN_CAN2MCU_1_INH);
写:
Dio_WriteChannel(DioConf_DioChannel_IN_CAN2MCU_1_INH,1);
  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车观察侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值