【S32DS系列】S32K311的CLOCK模块---学习记录

一、CLOCK模块驱动

使用S32DS官方生成代码进行设置芯片驱动

下图为CLOCK配置界面

【1】点击图示按键,进入到CLOCK模块的配置界面;

【2】矩形方框中的内容为时钟分频配置;(出现“锁”图标,则单击“锁”解锁后再配置)

【3】外设时钟的时钟源选择配置;

注意:

【4】S32K311在烧录固件后,可能会出现周期重启现象。需要将HSE_CLK频率降到60MHz;

点击更新源代码

二、API函数接口

1、CLOCK初始化

Clock_Ip_StatusType Clock_Ip_Init(Clock_Ip_ClockConfigType const * Config)

函数路径:工程名/RTD/src/Clock_Ip.c

参数:Clock_Ip_ClockConfigType const * Config  (参数内容随上述CLOCK模块配置而同步更改)

参数路径:工程名/generate/src/Clock_Ip_Cfg.c

const Clock_Ip_ClockConfigType Clock_Ip_aClockConfig[1U] = {

    /*! @brief User Configuration structure clock_Cfg_0 */

    {
        0U,                          /* clkConfigId */
        (NULL_PTR),               /* Register data if register value optimization is enabled */

        3U,                       /* ircoscsCount */
        1U,                       /* xoscsCount */
        1U,                       /* pllsCount */
        7U,                       /* selectorsCount */
        13U,                       /* dividersCount */
        1U,                       /* dividerTriggersCount */
        0U,                       /* fracDivsCount */
        0U,                       /* extClksCount */
        54U,                       /* gatesCount */
        0U,                       /* pcfsCount */
        4U,                       /* cmusCount */
        6U,                       /* configureFrequenciesCount */

        (&Clock_Ip_IrcoscConfigurations_0),                    /* Ircosc configurations */
        (&Clock_Ip_XoscConfigurations_0),                      /* Xosc configurations */
        (&Clock_Ip_PllConfigurations_0),                       /* Pll configurations */
        (&Clock_Ip_SelectorConfigurations_0),                  /* Selectors configurations */
        (&Clock_Ip_DividerConfigurations_0),                   /* dividers configurations */
        (&Clock_Ip_DividerTriggerConfigurations_0),            /* dividerTriggers configurations */
        (NULL_PTR),                       /* fracDivs configurations */
        (NULL_PTR),                       /* extClks configurations */
        (&Clock_Ip_GatesConfigurations_0),                     /* gates configurations */
        (NULL_PTR),                       /* pcfs configurations */
        (&Clock_Ip_CmuConfigurations_0),                       /* cmus configurations */
        (&Clock_Ip_ConfiguredFrequencyConfigurations_0),       /* configureFrequencies configurations */
    },
};

三、函数调用

void System_Init(void)
{
	//printf("*** hellow world ^_^ ************************************* 16021037 \n");

	/* System clock initialization */
	Clock_Ip_Init(&Clock_Ip_aClockConfig[0]);

}

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
s32ksdkcan组件详解:canpal-flexcan是一种用于s32k系列芯片的CAN(Controller Area Network)组件,用于实现CAN总线通信。下面将详细介绍canpal-flexcan的使用和原理。 canpal-flexcan的使用是通过s32k芯片上的FLEXCAN(Flexible Controller Area Network)模块实现的。FLEXCAN模块是一个完全兼容CAN2.0B标准的硬件模块,其中包含了CAN控制器和CAN收发器。 可以通过canpal-flexcan组件来配置和控制FLEXCAN模块的工作方式。首先,我们需要使用canpal-flexcan提供的API函数来初始化FLEXCAN模块,包括设置波特率、模式、中断、滤波器等。然后,我们可以使用canpal-flexcan提供的API函数来发送和接收CAN帧。 canpal-flexcan的原理是基于CAN协议的工作原理。CAN协议是一种串行通信协议,它使用了非归零编码(NRZ)和差分信号传输来实现高速、可靠的通信。CAN协议中使用了标识符来识别不同的消息,并使用了帧格式来定义消息的结构。 FLEXCAN模块将CAN协议的物理层和数据链路层功能集成在一起,通过硬件实现CAN消息的发送和接收。FLEXCAN模块包含了一个CAN控制器,负责管理发送和接收的缓冲区和过滤器,以及一个CAN收发器,负责将CAN数据转换成差分信号进行传输。 在发送CAN帧时,canpal-flexcan将CAN帧的数据、标识符等信息写入FLEXCAN模块的发送缓冲区,然后通过CAN收发器将数据转换成差分信号进行传输。在接收CAN帧时,canpal-flexcan从FLEXCAN模块的接收缓冲区中读取数据和标识符,并进行解析和处理。 总之,canpal-flexcan是s32k系列芯片中用于CAN总线通信的组件,通过配置和控制FLEXCAN模块的工作方式来实现CAN消息的发送和接收。可以根据CAN协议的工作原理来理解canpal-flexcan的使用和原理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值