SemiDrive E3 MCAL 开发系列(2) – Port & Dio 模块的使用

一、概述

本文将会介绍如何导入  SemiDrive E3 系列 MCU 的 MCAL 配置工程以及介绍 Port 和 Dio 模块的基本配置,并且会结合实际操作的介绍,帮助新手快速了解并掌握这两个模块的使用,文中的 MCAL 是基于 PTG3.0 的版本,开发板是官方的 E3640 网关板。

二、MCAL 配置工程的导入

首先打开 EB 软件,导入 E3 的 MCAL 配置工程 ,本文介绍的 E3 的配置及实操是基于 SemiDrive 的 E3640 网关板,导入的 MCAL 配置工程路径如图 2.1 所示,其具体操作流程如图 2.2 所示。

 


 

                                                                    图 2.1 E3 MCAL 配置工程路径

 


 

                                                                           图 2.2 导入EB 配置工程
 

导入完 MCAL 配置工程之后可以点击 “generate project”的按钮生成配置代码,点击后会有提示框提示错误和警告的数量,如果没有错误,则配置代码生成成功。

 


 

                                                                           图 2.3 生成配置代码

三、Port 模块的主要配置

Port 模块主要用于配置每个引脚的功能,包括引脚的功能复用、上下拉配置、驱动电流、引脚方向、是否使能引脚中断等等。

关于 Port 模块的配置流程,首先双击 Port 这个模块,EB 会显示 Port 模块的配置界面,如图 3.1 所示,Gerneral 部分主要配置是否使能对应的 API 以及是否使能输入引脚中断检测。PortContainer 则是针对每组 Port 引脚进行配置,主要是引脚数量的填写,要和实际配置的引脚数量保持一致。我们后面的实际操作需要使用到中断检测,因此需要勾选上 “PortSetPinINTDetect”这个选项。

 


 

                                                                                图 3.1 Port 模块配置界面
 

接着针对每个 Port 引脚进行具体的配置,配置界面及主要配置项的功能如图 3.2 所示,这里我们配置 E25 和 E26 两个引脚,一个配置为输入引脚、一个配置为输出引脚,具体配置如图中的红框所示。这里我们 E25 引脚的中断配置配置为上升沿触发。
 

                                                                        图 3.2 Port 模块具体引脚配置界面
 

四、Dio 模块的主要配置

Dio 模块的配置也比较简单,主要是 DioPortId 和 DioChannelId 的配置。例如我们要配置的 E25 引脚,可以通过查看工程中的 Port_Hw_E3_PinCtrl.h 文件,如图 4.1 所示,E25 引脚的 Id 为 212,这个值就是这个引脚的 DioChannelId,我们只需要根据这个值找到其对应的 Port。
 

                                                                    图 4.1 Port_Hw_E3_PinCtrl.h 文件
 

那么如何根据 DioChannelId 找到其对应的 Port 呢?我们可以通过芯驰提供的 Dio 配置文档《SemiDrive_Dio_User_Manual.pdf》中查看,具体对应关系如下表所示。从表中我们可以知道 E25 和 E26 引脚都是 Port 7。

Port Id

DioChannelId

0

0-31

1

32-63

2

64-95

3

96-127

4

128-134

5

135-166

6

167-198

7

199-213

 

表 4.1 port id 对应关系

如图 4.2 所示,我们只需在 Port7 的配置中添加我们需要的两个引脚即可,引脚的名称我们可以自由命名,后续调用 Dio 模块的相关接口时会引用到。


 

                                                                                   图 4.2 添加两个引脚
 

五、实际操作

下面将基于 E3 MCAL 工程进行 Dio 模块的测试,我们使用 E26 引脚作为输出引脚,E25 引脚为输入引脚,修改 Dio 的测试代码,让输出引脚连续翻转 10 次,间隔 500 ms,输入引脚则会检测输入电平变化,当有上升沿会触发中断,我们在中断里打印 Port Id 及寄存器的值,测试时我们需要将 E25 引脚和 E26 引脚连在一起。代码主要修改两个部分,一个是 Dio 的测试代码,一个是 Dio 的中断函数,具体修改如图 5.1 和图 5.2 所示。

 


 

                                                                           图 5.1 dio_test 函数修改

 


 

                                                                               图 5.2 Dio 中断函数修改
 

修改完代码后编译下载到开发板,接上串口,上电运行,输入测试命令“dio test”,可以观察到 LED 会每秒闪烁一次,连续 10次,另外也可以看到串口打印出输出引脚的 Port id 以及该 Port的寄存器状态,如图 5.3 所示。
 

                                                                                       图 5.3 串口打印
 

六、参考资料

1.《SemiDrive_Dio_User_Manual.pdf》,2022.05

2.《SemiDrive_E3_MCAL_User_Guide_Rev03.00.pdf》,2023.08

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值