NXP MCU 技术论坛
直播中

efwedfd

8年用户 1048经验值
擅长:EMC/EMI设计
私信 关注
[问答]

用S32DS_ARM_Win32_v2.2写的lpspi驱动,如何在初始化时将其更改为低电平?

我用S32DS_ARM_Win32_v2.2写的lpspi驱动,
我测试和MOSI默认是高电平,如何在初始化时将其更改为低电平。
我添加了项目和照片,你能帮忙检查一下如何修改它吗?
我已经将它设置为下拉,但不起作用






































回帖(1)

笑尽往事

2024-3-29 15:34:43
首先,需要确认你使用的是什么类型的SPI器件。如果它是3线制SPI,那么MOSI线应该是输入输出共用的,它的电平状态由你的MCU控制器输出方向决定,不需要更改MOSI的电平状态。如果它是4线制SPI,那么MOSI应该是输出线,可以通过输入输出寄存器来控制其电平状态。

在初始化LPSPI的时候,你可以设置MOSI的输出电平状态。在文件lpspi_master_driver.c中,可以找到LPSPI_MasterInit函数。

在这个函数中,你需要设置MOSI的输出电平状态,代码如下:

```c
lpspi_master_config_t masterConfig;
...
masterConfig.pcsActiveHighOrLow = kLPSPI_PcsActiveLow;
...
LPSPI_MasterInit(SPI_INSTANCE, &masterConfig, SPI_INSTANCE_CLK_FREQ);
```

通过设置pcsActiveHighOrLow参数为kLPSPI_PcsActiveLow,可以将MOSI的输出电平状态设置为低电平。

如果你已经将MOSI设置为下拉,但是仍然没有起作用,可能是你的电路有问题。你可以检查下拉电阻的大小、连接方式等问题。手动将MOSI的电平状态从高电平改为低电平,看看是否可以正常传输数据。
举报

更多回帖

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