lugl4313820 发表于 2022-2-7 14:16

【国民技术N32G457评测】 RT_Thread 解决SPI NSS不能拉低的问题

<p>昨天测试到了SPI NSS不能拉低,今天通过一步一步调试:找出了原因,记录如下:</p>

<p>原来是以序号为记录,</p>

<pre>
<code>*/
/* 结构体命名有问题*/
/*
struct n32_hw_spi_cs
{
    rt_uint32_t pin;
};
*/
/* 调整后的结构*/
struct n32_hw_spi_cs
{
    GPIO_Module* GPIOx;
    uint32_t GPIO_Pin;
};</code></pre>

<p>追踪到drv_spi.c中要找出来pin,由于传参的不同,找不到NSS的Pin,所以返回了空值,造成NSS不能拉低。</p>

<p></p>

<p> &nbsp;&nbsp; &nbsp;</p>

<p>在这里由于drv_spi.c认为是要查找pin所以用PA4 的Pin=29再去找到,结果就没有查到,所以把声明的结构体修改回去,或者重新修改rt_uint32_t xfer函数:</p>

<p>修改后的时序图如下:</p>

<p>&nbsp;这里记录一下。</p>

<p>还有就是drv_spi.c还有一些函数是写死的:</p>

<p>如:</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

Jacktang 发表于 2022-2-7 16:05

<p>传参的不同,找不到NSS的Pin,是rt_uint32_t xfer函数的问题么</p>

lugl4313820 发表于 2022-2-7 16:38

本帖最后由 lugl4313820 于 2022-2-7 16:41 编辑

<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3120397&amp;ptid=1193331" target="_blank"><font color="#999999">Jacktang 发表于 2022-2-7 16:05</font></a></font> 传参的不同,找不到NSS的Pin,是rt_uint32_t xfer函数的问题么</blockquote>
</div>

<p>我原来找的例子只是直传转换过来的PIN,但是drv_spi.c里面对接的是GPIO 跟pin的的结构体。drv_spi.c里面又根据GPIOx GPIO_PIN_x去查找出PIN的值。</p>

Jacktang 发表于 2022-2-8 07:21

lugl4313820 发表于 2022-2-7 16:38
Jacktang 发表于 2022-2-7 16:05 传参的不同,找不到NSS的Pin,是rt_uint32_t xfer函数的问题么


我 ...

<p>原来这样</p>

<p>谢谢回复</p>
页: [1]
查看完整版本: 【国民技术N32G457评测】 RT_Thread 解决SPI NSS不能拉低的问题