S32DS for ARM GPIO实践

S32DS操作:

一、新建项目

打开S32DS,FIle-->NEW--> S32DS Application Project选择对应芯片,写入项目名然后下一步
选择对应的SDK,Debugger选带有PE字眼的,点击完成
配置GPIO,双击Components界面下的pin_mux,在弹出的界面里面找到GPIO选项卡,找到想要配置的pin,选择输入或者输出
我这里配置了TPC6为输出模式,然后右键Pin/Signal Selection的PTC6,打开Pin Functional Properties

这里配置PTC6的所有配置:

interrupt status field 中断状态标准位 ------不修改 清晰的标志位

interrupt configuration field 中断触发方式 (ISF)----------失能、DMA、上升沿、下降沿、上升下降沿 、逻辑1、逻辑0。

pin Mux field- ----------IO复用

lock Field---------锁控制

pull enable fieled---------推挽使能

pull select field-----------选择上拉还是下拉

initial value field---------- 默认输出状态

digital filter field ----------数字滤波器

二、生成配置

配置完成后,保存后点击这里生成配置代码,生成的代码会在Grenerated_Code文件夹下

三、代码初始化

S32DS生成的代码只生成了配置,不会想STM32MX一样把我们把初始化写到main里面,所有需要我们自己去写

默认配置下,我们系统时钟用的是高速的内部时钟

在clockman1里面可以查看

这个是S32时钟初始化的代码

c 复制代码
CLOCK_SYS_Init(g_clockManConfigsArr,CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr,CLOCK_MANAGER_CALLBACK_CNT);
CLOCK_SYS_UpdateConfiguration(0U,CLOCK_MANAGER_POLICY_AGREEMENT);

这个是GPIO初始化的代码以及写函数

c 复制代码
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);
PINS_DRV_WritePin(PTC,6,1); //写PTC6为1

这个是我的main函数

c 复制代码
/* ###################################################################
**     Filename    : main.c
**     Processor   : S32K1xx
**     Abstract    :
**         Main module.
**         This module contains user's application code.
**     Settings    :
**     Contents    :
**         No public methods
**
** ###################################################################*/
/*!
** @file main.c
** @version 01.00
** @brief
**         Main module.
**         This module contains user's application code.
*/         
/*!
**  @addtogroup main_module main module documentation
**  @{
*/         
/* MODULE main */


/* Including necessary module. Cpu.h contains other modules needed for compiling.*/
#include "Cpu.h"

  volatile int exit_code = 0;

/* User includes (#include below this line is not maintained by Processor Expert) */
  void delay(volatile int x){
  	while(x--);
  }
/*! 
  \brief The main function for the project.
  \details The startup initialization sequence is the following:
 * - startup asm routine
 * - main()
*/
int main(void)
{
	delay(500);
  /* Write your local variable definition here */
  
  /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
  #ifdef PEX_RTOS_INIT
    PEX_RTOS_INIT();                   /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */
  #endif
  /*** End of Processor Expert internal initialization.                    ***/
    CLOCK_SYS_Init(g_clockManConfigsArr,CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr,CLOCK_MANAGER_CALLBACK_CNT);
    CLOCK_SYS_UpdateConfiguration(0U,CLOCK_MANAGER_POLICY_AGREEMENT);
    PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);

    while(1){
    	PINS_DRV_WritePin(PTC,6,1); 
    	delay(500);
    	PINS_DRV_WritePin(PTC,6,0); 
    }
  /* Write your code here */
  /* For example: for(;;) { } */

  /*** Don't write any code pass this line, or it will be deleted during code generation. ***/
  /*** RTOS startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON'T MODIFY THIS CODE!!! ***/
  #ifdef PEX_RTOS_START
    PEX_RTOS_START();                  /* Startup of the selected RTOS. Macro is defined by the RTOS component. */
  #endif
  /*** End of RTOS startup code.  ***/
  /*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/
  for(;;) {
    if(exit_code != 0) {
      break;
    }
  }
  return exit_code;
  /*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/

/* END main */
/*!
** @}
*/
/*
** ###################################################################
**
**     This file was created by Processor Expert 10.1 [05.21]
**     for the NXP S32K series of microcontrollers.
**
** ###################################################################
*/
	
相关推荐
CC呢5 小时前
基于单片机智能家居环境检测系统/室内环境检测设计
stm32·单片机·嵌入式硬件·物联网·智能家居
芯岭技术12 小时前
MS32C001单片机芯片介绍,QFN16/20封装 主频24MHz
单片机·嵌入式硬件
weixin_7007114012 小时前
硬件基础与c51基础
单片机·嵌入式硬件
Jack1530276827914 小时前
深度剖析 DC - DC 转换器在新能源汽车中的关键应用
单片机·嵌入式硬件·汽车·充电桩·电动工具·汽车音响系统
武文斌7715 小时前
单片机:GPIO、按键、中断、定时器、蜂鸣器
单片机·嵌入式硬件
古译汉书16 小时前
嵌入式铁头山羊stm32-SAR型ADC模块介绍、采样时间、转换时间-Day24
c语言·stm32·单片机·嵌入式硬件·iot
2501_9212904417 小时前
嵌入式第四十六天(51单片机(中断,定时器))
单片机·嵌入式硬件·51单片机
Skylar_.17 小时前
嵌入式 - 硬件:51单片机(3)uart串口
单片机·嵌入式硬件·51单片机
今天阳光明媚吗18 小时前
STM32启动模式配置
stm32·单片机