当前位置: 首页 > news >正文

镇江建设局网站莱芜手机网站设计公司

镇江建设局网站,莱芜手机网站设计公司,国际新闻大事件,中国互联网协会官网平台前言 今天花时间看了一下,SIUL2模块的相关内容,并参照文档,以及例程作了一些小记录,知道该如何使用这个外设,包括引脚的配置,中断配置,以及常用函数的使用等,但对其中的一些细节还需…

前言

今天花时间看了一下,SIUL2模块的相关内容,并参照文档,以及例程作了一些小记录,知道该如何使用这个外设,包括引脚的配置,中断配置,以及常用函数的使用等,但对其中的一些细节还需要跟深入的学习和了解。

一、SIUL2是什么?

系统集成单元:System Integration Unit Lite2 (SIUL2) 提供外部设备引脚上的功能和电气特性的控制和可配置性。
在这里插入图片描述

通过其功能框图可以看出其实就是一个用来管理引脚功能的单元,包括中断配置,DMA,端口复用等。

在这里插入图片描述

上表中展示了S32K3XX系列的引脚功能

外部中断实现概述:
在这里插入图片描述

芯片上的REQ输入引脚是中断或DMA请求的源。芯片为SIUL2提供了四种可能的中断向量。32个中断请求源映射到向量和通道如下:

在这里插入图片描述

二、GPIO使用步骤

1.配置参数

将PTB18配置成GPIO模式且为输出管脚(LED)
在这里插入图片描述

引脚参数选用默认即可,需要注意引脚的初始状态!

2.常用API

**Siul2_Port API**
Siul2_Port_Ip_PortStatusType Siul2_Port_Ip_Init(uint32 pinCount,const Siul2_Port_Ip_PinSettingsConfig config[])
用S32DS配置工具生成的给定结构初始化引脚。void Siul2_Port_Ip_SetPullSel(Siul2_Port_Ip_PortType * const base,uint16 pin,Siul2_Port_Ip_PortPullConfig pullConfig)
启用给定引脚的上拉/下拉设置。**Siul2_Dio API**
void Siul2_Dio_Ip_WritePin(Siul2_Dio_Ip_GpioType * const   base, Siul2_Dio_Ip_PinsChannelType   pin,  Siul2_Dio_Ip_PinsLevelType     value)
向指定的引脚写入高低电平。
void Siul2_Dio_Ip_TogglePins(Siul2_Dio_Ip_GpioType * const base,Siul2_Dio_Ip_PinsChannelType pins )
翻转指定引脚电平。   

2.Demo

在这里插入图片描述

通过延时实现LED闪烁。

三、外部中断配置

1、引脚配置

将引脚配置为外部输入中断,可以看出其中断通道为 20
在这里插入图片描述

2、中断配置

关于中断配置有两种方式,其一是使用Siul2_Icu,另一种是使用通用的中断控制器IntCtrl_Ip_1,选择其中一种方式即可。
使用Siul2_Icu配置:
在这里插入图片描述

其中我们需要关心的就是,触发方式,工作模式,以及中断服务函数。
在这里插入图片描述

启用这个IRQ通道中断

在这里插入图片描述

注意的是通道号需要与对应起来,就可以了。

使用IntCtrl_Ip_1配置:

1、添加一个Interrupt Controller

在这里插入图片描述

使能对应的中断向量,与前面的分组表有关,中断引脚使用的是IRQ_20所以在此使能SIUL_2_IRQn。
在这里插入图片描述

然后需要给其分配中断服务函数入口标识。
在这里插入图片描述

后面的回调函的名字需要与对应外设的peripheral_Ip_Irq.c或者peripheral_Ip.c中的中断名字一致。比如GPIO的就要选择Siul2_Icu_Ip_Irq.c文件中的SIUL2_EXT_IRQ_16_23_ISR填入。

三、Demo

/* Initialize clock */Clock_Ip_InitClock(&Mcu_aClockConfigPB[0]);Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0);/* Install Siul2 ISR */IntCtrl_Ip_InstallHandler(SIUL_2_IRQn, &SIUL2_EXT_IRQ_16_23_ISR, NULL_PTR);IntCtrl_Ip_EnableIrq(SIUL_2_IRQn);/* Initialize the Icu driver */Siul2_Icu_Ip_Init(0,&Siul2_Icu_Ip_0_Config_PB_VS_0);UserCountIrqCH0 = 0U;BlinkCount = 0U;Siul2_Icu_Ip_EnableInterrupt(0,20);Siul2_Icu_Ip_EnableNotification(0,20);/*中断服务函数*/
void User_EdgeDetect0(void)
{/* increment IRQ counter */UserCountIrqCH0++;if(UserCountIrqCH0 % 2 == 0){Siul2_Dio_Ip_WritePin(Digital_Output_LED_BLUE_PORT, Digital_Output_LED_BLUE_PIN, 1);}else{Siul2_Dio_Ip_WritePin(Digital_Output_LED_BLUE_PORT, Digital_Output_LED_BLUE_PIN, 0);}
}

四、常用中断API

/*用于注册一个处理函数(pfNewHandler)。*/
void IntCtrl_Ip_InstallHandler( IRQn_Type eIrqNumber,const IntCtrl_Ip_IrqHandlerType pfNewHandler,IntCtrl_Ip_IrqHandlerType* const pfOldHandler/* 使能相应的中断(eIrqNumber) */
void IntCtrl_Ip_EnableIrq(IRQn_Type  eIrqNumber);/* Icu模块初始化 */
Siul2_Icu_Ip_StatusType Siul2_Icu_Ip_Init(uint8 instance, const Siul2_Icu_Ip_ConfigType* userConfig)/*Icu模块中断使能*/
void Siul2_Icu_Ip_EnableInterrupt(uint8 instance, uint8 hwChannel)/*Icu模块user callback function使能。User callback function is registered in function Siul2_Icu_Ip_Init()*/
void Siul2_Icu_Ip_EnableNotification(uint8 instance, uint8 hwChannel)/* 设置通道的检测状态,上升沿、下降沿、双边沿 */
Void Siul2_Icu_Ip_SetActivationCondition(uint8 instance, uint8 hwChannel, Siul2_Icu_Ip_EdgeType edge)

部分内容来源于网络,侵权请联系删除!

http://www.yayakq.cn/news/444652/

相关文章:

  • 怎样将自己做的网站发布到外网上无锡网站建设公司排名
  • 被官方认可赚钱游戏北京网站运营优化公司
  • 广州网站建设兼职软件商店软件下载
  • 如何提升网站的权重田园综合体建设网站
  • 网站制作什么样的字体好看设计师在线
  • 点击立即进入正能量网站网站改备案信息吗
  • 深圳网站建设公司地址天元建设集团有限公司 企查查
  • 自己做的网站二维码怎么做的付费电影网站源码
  • 傻瓜式网站界面中国建设银行官网站基金查询
  • 购车网站设计保健品网站建设流程
  • 网站建设技术架构怎么做可以直播的网站
  • 做网站建设公司哪家好?《电子商务网站建设 》
  • 学校网站建设报价表网站移动端是什么问题吗
  • 网站 创意 方案app拉新一手渠道
  • 免费网站推广群发软件如何建设网站?
  • 织梦怎么关闭网站南沙门户网站建设
  • wordpress拷站从来没做过网站如何做
  • 长沙做网站竞网莱芜市网站建设设计
  • 网站运营维护措施有哪些鞍山最新通知今天
  • 手机网站搜索框代码dw用层还是表格做网站快
  • 哈密地网站建设淄博微信小程序代理
  • 网站推广及seo方案加盟企业网站建设目的
  • 想要提高网站排名应该怎么做浙江省甲级设计院加盟
  • 注册网站需要多久wordpress页面显示
  • 优秀学校网站设计网站后台管理器怎么做
  • 阳泉做网站wordpress精品主题
  • 增城高端定制网站建设页面设计的英文
  • 天津网站开发工资水平百度打击未备案网站
  • 建设一个棋牌网站都得准备什么雇主品牌建设
  • 网站建设流程 知乎互联网推广公司排名