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.
**
** ###################################################################
*/
	
相关推荐
深信达沙箱4 小时前
漏洞修不完、合规过不了?先御OS如何让嵌入式设备‘出厂即合规
arm开发·操作系统·嵌入式操作系统
KOAN凯擎小妹5 小时前
无源晶振为什么有串联谐振和并联谐振?MCU为什么使用并联晶体?
单片机·嵌入式硬件·晶振·元器件
振南的单片机世界8 小时前
3.5T静默分帧,CRC16校验:Modbus-RTU帧结构解析
arm开发·stm32·单片机·嵌入式硬件
LingzhiPi8 小时前
零知派ESP32--AS5600磁吸旋钮音量控制器
c++·单片机·嵌入式硬件
0x3F(小茶)9 小时前
STM32 SPI的5种方向模式
c语言·stm32·单片机·嵌入式硬件
BSD_CGQ10 小时前
FSR压力传感器信号调理电路设计要点
单片机·嵌入式硬件·压力传感器·源头工厂·薄膜压力传感器
爱就是恒久忍耐11 小时前
CanFestival移植到STM32 F103芯片(基于HAL库)
stm32·单片机·嵌入式硬件
LCG元12 小时前
STM32 多总线传感器采集系统:I2C + SPI + ADC + UART 协同实战(FreeRTOS 调度)
stm32·单片机·嵌入式硬件
m0_5474866613 小时前
《Arm Cortex-M4嵌入式系统-STM32G4系列微控制器的原理架构与开发》全套PPT课件
arm开发·stm32·嵌入式硬件
ShiMetaPi13 小时前
ShiMetaPi-Pico-G1快速入门:(1)开发环境搭建
stm32·单片机·嵌入式硬件