S32K3基于IAR IDE环境下使用JLINK调试

电子说

1.3w人已加入

描述

    首先从IAR官网下载最新的软件版本。

IAR Systems Product Updates

    在IAR Embedded Workbench for Arm | IAR Systems 找到Download图标进行下载。

Jlink

    在S32K3xxDRV_r1.4 软件包种提供了各种外设的配置例程。

Jlink

    以eMIOS为例,此示例使用增强型模块化输入/输出子系统(eMIOS)生成PWM信号。PWM信号使用在OPWMB模式下运行的eMIOSO_CH[9]通道生成。PWM通道的时基由MCB递增计数模式下运行的eMIOS0_CH[8]通道设置。输出 PWM信号可在引脚PTA1上测量到。

/* emios_pwm_test.c*/

#include "drivers.h"

uint16_t dutyArray[2]={APP_PWM_PERIOD_HALF - (uint16_t)(0.5f*(float)APP_PWM_PERIOD_HALF),

APP_PWM_PERIOD_HALF + (uint16_t)(0.5f*(float)APP_PWM_PERIOD_HALF)};

int main (void)

{

/* 使能所有的片上外设 */

MCME_PeriphCtrl (MCME_ALL_PERIPH_EN_CONFIG);

/* 配置 GPIO引脚   */

SIUL_Init (PTA, PIN1, OUT_ALT2, PIN_DS_EN_PULLNO_SR_DI_PK_DI_CONFIG);

/* 时基设置 */

EMIOS_Init(EMIOS0,EMIOS_CH8,EMIOS_MODE_MCB_UP_ICLK(EMIOS_PRESC_1,EMIOS_PRESC_CLOCK,1u,APP_MC_A1));

/*PWM */

EMIOS_Init(EMIOS0,EMIOS_CH9,EMIOS_MODE_OPWMB_TB(EMIOS_BUS_BCDE,EMIOS_B1M_F,EMIOS_EDPOL_OUT_A_CLR_B_SET,5u,6u));

EMIOS_Enable(EMIOS0, EMIOS_CH8);

/*设置默认的  50% 占空比用于 PWM输出 */

EMIOS_Update(EMIOS0, EMIOS_OPWMB, EMIOS_CH9, dutyArray);

/*通过使能全局分频器来启动时基 */

EMIOS_EnablePrescaler(EMIOS0, 1u);

while(1) { asm("nop");}

}

头文件如下:

#ifndef __APPCONFIG_H

#define __APPCONFIG_H

#define configHANDLER_IN_TCM  1

#define configRUNTIME_IN_TCM  1

#define configCLOCK_MODE      5

#define configXTAL_FREQ       2

/* PWM周期: EMIOS / emios_global_prescaler / fPWM = 160MHz / 1 / 20kHz = 8000  */

#define APP_PWM_PERIOD          8000u

/* 模计数器缓冲(向上/向下)A1比较值*/

#define APP_MC_A1               ((APP_PWM_PERIOD ) + 1u)

/* 用于占空比计算的一半的 PWM周期滴答数*/

#define APP_PWM_PERIOD_HALF     ((APP_PWM_PERIOD / 2u) +1u)

#endif /* __APPCONFIG_H */

    编译工具链支持:

S32DS 3.4 EWARM 9.32
X X

Jlink

Jlink

Jlink

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分