E3110_Port中断配置过程

一、选取的 port 为 GPIO_B0,使用 example 示例程序中的 dio_example.c 实现,因为需要使用中断功能,所以需将 Port 的 PortSetPinINTDetect 功能打开。

二、 PortContainer->双击添加的引脚名称->PortPin->添加命名为 DI 的 PortPin,配置引脚上电默认输出电压为高电平,中断触发方式为下降沿触发。

三、 在 Dio 配置界面,DioPort 内添加 DioPort_1 双击进入,选择 DioChannel 添加 45 的 DO_OUT


四、在 IAR 项目内,打开 dio_example.c 文件,添加头文件 Dio_Irq.h,和 irq_test() 函数,并在 dio_test() 函数内加入 irq_test() 函数。

添加的 irq_test() 函数为关联中断标志和中断函数,因为 GPIO_B0 属于 GPIO_SAFETY 的 port1,所以使用 GPIO_SF_SYNC_GRP_1_INTR_NUM;

因为中断函数 GPIO_Irq2Handler 内 id 会自减 1,所以使用 2;因为中断函数 GPIO_Irq2Handler 定义在 Dio_Irq.h,所以添加头文件 Dio_Irq.h;

之后使能 GPIO_SF_SYNC_GRP_1_INTR_NUM。

五、 进入中断后,在 Dio_IP.C 文件内一层一层调用函数,GPIO_Irq2Handler() -> Dio_Ip_IrqHandler()->  Dio_UserCallouts(),进入 Dio_UserCallouts.c 文件。在文件内添加头文件 Dio_Cfg.h 和 debug.h,和 switch case 并打印传参对应的 ChannelId 的程序。Dio_Cfg.h 是 GPIO_B0 的宏定义 DioConf_DioChannel_DO_IN 文件,debug.h 是函数 PRINT() 文件。



六、编译并烧录程序后,通过串口软件写入 dio test,再使用杜邦线将地和 GPIO_B0 引脚短接后松开,串口软件中会打印对应的串口数据。



欢迎在博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com
作者:Feihu Wang / 王飞虎

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论