我想向其中一个引脚发送“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 主例程结束。不要在下面写代码!!!***/
} /*** 主例程结束。不要修改此文本!!!***/
0