【国民技术N32G457评测】 RT_Thread 解决SPI NSS不能拉低的问题
[复制链接]
昨天测试到了SPI NSS不能拉低,今天通过一步一步调试:找出了原因,记录如下:
原来是以序号为记录,
*/
/* 结构体命名有问题 */
/*
struct n32_hw_spi_cs
{
rt_uint32_t pin;
};
*/
/* 调整后的结构 */
struct n32_hw_spi_cs
{
GPIO_Module* GPIOx;
uint32_t GPIO_Pin;
};
追踪到drv_spi.c中要找出来pin,由于传参的不同,找不到NSS的Pin,所以返回了空值,造成NSS不能拉低。
在这里由于drv_spi.c认为是要查找pin所以用PA4 的Pin=29再去找到,结果就没有查到,所以把声明的结构体修改回去,或者重新修改rt_uint32_t xfer函数:
修改后的时序图如下:
这里记录一下。
还有就是drv_spi.c还有一些函数是写死的:
如:
|