使用S32DS来开发KEA并配有LED闪烁的例程

注: 一个NXP代理商的建议:尽量选择官方S32DS来开发KEA和S32K系列,不建议使用第三方的IDE,包括Keil

之前也写了 篇类似的文章:使用Keil MDK for ARM来开发KEA并配有LED闪烁的例程

硬件准备

  • MCU:KEAZN64, 64 Pins(其它的MCU也是类似)
  • 仿真器: J-Link

也有许多同学问到如何使用J-Link与MCU的连接,我是使用SWD方式,请看图了:
使用S32DS来开发KEA并配有LED闪烁的例程_第1张图片
其中J-Link的SWD相关接口的定义是:

  • 第1脚:Vref,这个必须连接MCU的供电电源
  • 第7脚:SWIO
  • 第9脚:SWCLK
  • 第15脚:RESET
  • 第20脚:GND

S32DS的安装

这个看之前的文章: 在Windows安装S32 Design Studio for ARM

LED闪烁的例程

LED原理图

使用S32DS来开发KEA并配有LED闪烁的例程_第2张图片
使用PTD2来控制一个LED, 高电平就亮,低电平就不亮。

新建工程

(1)选择S32DS Application Project
使用S32DS来开发KEA并配有LED闪烁的例程_第3张图片
(2)确定工程目录、MCU型号、工具链
使用S32DS来开发KEA并配有LED闪烁的例程_第4张图片
(3)选择内核、SDK、调试器等相关参数
使用S32DS来开发KEA并配有LED闪烁的例程_第5张图片
使用S32DS来开发KEA并配有LED闪烁的例程_第6张图片
(4)最后生成的工程界面
使用S32DS来开发KEA并配有LED闪烁的例程_第7张图片

编写程序

寄存器版本

我们修改一下main.c文件,如下

/*
 * main implementation: use this 'C' sample to create your own application
 *
 */
#include "derivative.h" /* include peripheral declarations SSKEAZN64M2 */

#define PTD2 26		 /* LED管脚 */

void Delay(void);

int main(void)
{
	GPIOA_PDDR |= 1<<PTD2;	/* PTD2: Data Direction= output */
	
	for( ; ;) {
		GPIOA_PSOR = 1<<PTD2;
		Delay();

		GPIOA_PCOR = 1<<PTD2;
		Delay();
	}
	
	return 0;
}

/*
 * 延时大概是400ms
 */

void Delay(void)
{
	uint32_t i,j;

	for(i=0; i<8; i++)
		for(j=0; j<65535; j++);
}

这里解释一下#define PTD2 26 /* LED管脚 */ 为什么是写26:

  • SKEAZN64系列包括GPIOA和GAIOB
  • PTD2对应是GPIOA的第26位
    使用S32DS来开发KEA并配有LED闪烁的例程_第8张图片

库函数版本

上面的寄存器版本,得要去认真看手册,比较麻烦,开发效率也比较慢,我们以后推荐使用库函数版本

/*
 * main implementation: use this 'C' sample to create your own application
 *
 */

#include "derivative.h" /* include peripheral declarations SSKEAZN64M2 */
#include "gpio.h"


void Delay(void);

int main(void)
{
	CONFIG_PIN_AS_GPIO(PTD, PTD2, OUTPUT); /*Config LED0 as output */
	OUTPUT_CLEAR(PTD, PTD2);

	for( ; ;)
	{
		OUTPUT_SET(PTD, PTD2); 	/* Turn on LED0*/
		Delay();

		OUTPUT_CLEAR(PTD, PTD2); /* Turn off LED0*/
		Delay();
	}

	return 0;
}

/*
 * 延时大概是400ms
 */

void Delay(void)
{
	uint32_t i,j;

	for(i=0; i<8; i++)
		for(j=0; j<65535; j++);
}

编译工程

这个没什么好说的:
使用S32DS来开发KEA并配有LED闪烁的例程_第9张图片

配置工程

(1)右击工程,选择 Debug Configurations
使用S32DS来开发KEA并配有LED闪烁的例程_第10张图片
(2)新建GDB SEGGER J-Link Debugging
使用S32DS来开发KEA并配有LED闪烁的例程_第11张图片
使用S32DS来开发KEA并配有LED闪烁的例程_第12张图片
使用S32DS来开发KEA并配有LED闪烁的例程_第13张图片

注:以上的其它参数可以使用默认的配置

调试程序

(1)上面点击 Debug 后,接下来会进入调试界面:
使用S32DS来开发KEA并配有LED闪烁的例程_第14张图片

(2)点击上图的绿色按键,程序将会运行
使用S32DS来开发KEA并配有LED闪烁的例程_第15张图片
如果顺利的话,你将会看到LED不停地一闪一闪,其中周期是400ms:
使用S32DS来开发KEA并配有LED闪烁的例程_第16张图片
使用S32DS来开发KEA并配有LED闪烁的例程_第17张图片

小结

  • 建议使用S32DS来开发KEA和S32K系列
  • 建议使用库函数版本来开发,例程如下:
    • KEAZN32库函数例程
    • KEAZN64库函数例程
    • KEAZ128库函数例程

最后说一个坑,S32DS没有KEA8系列的SDK,只得使用寄存器版本:
使用S32DS来开发KEA并配有LED闪烁的例程_第18张图片
OVER~~

你可能感兴趣的:(KEA)