NXP MCU 技术william hill官网
直播中

李永每

7年用户 1448经验值
私信 关注
[问答]

MPC5748G Devkit如何将高电平发送到GPIO引脚?


我想向其中一个引脚发送“1”(高)值。我无法完成它。这是我尝试过的(使用 S32DS IDE)。

1. 引脚选择和初始化:
我想在 J3 区使用 PA1。我单击组件区域中的“ pin_mux:PinSettings ”并使用 GUI 从 SIUL2 模块中选择 GPIO 1。我将其设置为 PA[1] 和“输出”。在“生成处理器专家代码”之后,我的 pin_mux.c 更新了该引脚的条目。它读取   .pinPortIdx = 1u.gpioBase = PTA。看起来不错。
接下来我在我的 main.c 中输入这个函数来初始化:
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS,g_pin_mux_InitConfigArr);

2. 将“高”发送到引脚:
就在引脚初始化行的下方,我调用了这个函数:
PINS_DRV_WritePin(PTA, 1u, 1);


不幸的是,这不起作用。我的意思是我无法测量引脚上的任何电压,并且在调试代码时找不到任何更改的寄存器条目。

我的问题是:
1. MPC574G 如何使用嵌入式寄存器在引脚上发送“高电平”?在 nxp 网站的 LED 示例中,使用了一个掩码,仅将寄存器第四个字节中的一位设置为“1”,从而打开板载 LED。这是否意味着只有寄存器的特定位被传输到引脚?
2. 我怎样才能弄清楚嵌入式寄存器和在“PinSettings”GUI 中设置的引脚之间的连接是什么?
3. 我该怎么做才能让我的代码工作?

在此先感谢您的帮助。

这是我的 main() 来自 main.c :
int main(void)
{
  /* 在这里写下你的局部变量定义 */

  /*** Processor Expert 内部初始化。不要删除此代码!!!***/
  #ifdef PEX_RTOS_INIT
    PEX_RTOS_INIT(); /* 所选 RTOS 的初始化。宏由 RTOS 组件定义。*/
  #endif
  /*** Processor Expert 内部初始化结束。***/

  /* 初始化引脚 */
  PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);

  /* 将“高”发送到引脚*/
  PINS_DRV_WritePin(PTA, 1u, 1);

  /*** 不要写任何经过这一行的代码,否则它会在代码生成时被删除。***/
  /*** RTOS 启动代码。宏 PEX_RTOS_START 由 RTOS 组件定义。不要修改此代码!!!***/
  #ifdef PEX_RTOS_START
    PEX_RTOS_START(); /* 启动选定的 RTOS。宏由 RTOS 组件定义。*/
  #endif
  /*** RTOS 启动代码结束。***/
  /*** Processor Expert 主例程结束。不要修改此代码!!!***/
  for(;;) {
    if(exit_code != 0) {
      中断;
    }
  }
  返回退出代码;
  /*** Processor Expert 主例程结束。不要在下面写代码!!!***/
} /*** 主例程结束。不要修改此文本!!!***/

               

更多回帖

发帖
×
20
完善资料,
赚取积分