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.
**
** ###################################################################
*/
	
相关推荐
森焱森1 小时前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
白鱼不小白1 小时前
stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
stm32·单片机·嵌入式硬件
S,D2 小时前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程
芯岭技术5 小时前
PY32F002A单片机 低成本控制器解决方案,提供多种封装
单片机·嵌入式硬件
youmdt5 小时前
Arduino IDE ESP8266连接0.96寸SSD1306 IIC单色屏显示北京时间
单片机·嵌入式硬件
嘿·嘘5 小时前
第七章 STM32内部FLASH读写
stm32·单片机·嵌入式硬件
Meraki.Zhang6 小时前
【STM32实践篇】:I2C驱动编写
stm32·单片机·iic·驱动·i2c
几个几个n8 小时前
STM32-第二节-GPIO输入(按键,传感器)
单片机·嵌入式硬件
慕尘12 小时前
Clion配置51单片机开发环境
单片机
进击的程序汪13 小时前
Linux 启动过程流程图--ARM版
linux·运维·arm开发