【国民技术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> </p>
<p>在这里由于drv_spi.c认为是要查找pin所以用PA4 的Pin=29再去找到,结果就没有查到,所以把声明的结构体修改回去,或者重新修改rt_uint32_t xfer函数:</p>
<p>修改后的时序图如下:</p>
<p> 这里记录一下。</p>
<p>还有就是drv_spi.c还有一些函数是写死的:</p>
<p>如:</p>
<p> </p>
<p> </p>
<p>传参的不同,找不到NSS的Pin,是rt_uint32_t xfer函数的问题么</p>
本帖最后由 lugl4313820 于 2022-2-7 16:41 编辑
<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&goto=findpost&pid=3120397&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>
lugl4313820 发表于 2022-2-7 16:38
Jacktang 发表于 2022-2-7 16:05 传参的不同,找不到NSS的Pin,是rt_uint32_t xfer函数的问题么
我 ...
<p>原来这样</p>
<p>谢谢回复</p>
页:
[1]