找回密码
 立即注册
查看: 399|回复: 3

AI8051U的SPI使用问题(逐飞库)

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2025-06-15 17:43:13
已绑定手机

2

主题

2

回帖

312

积分

中级会员

积分
312
发表于 2025-3-12 09:06:54 | 显示全部楼层 |阅读模式
这里我初始化spi然后通过短接miso和mosi验证spi是否能够正确收发数据,其他接口都是悬空,如果不短接miso和mosi接收到的0xFF,短接之后接收到的是0x00,这是为什么呀,需要什么其他操作吗
微信图片_20250312090542.jpg
回复

使用道具 举报 送花

3

主题

727

回帖

165

积分

等待验证会员

积分
165
发表于 2025-3-12 09:08:00 | 显示全部楼层
关于AI8051U的SPI使用问题,您的测试方法是合理的。在SPI通信中,MOSI(主出从入)和MISO(主入从出)分别用于数据的发送和接收。当您短接MOSI和MISO时,实际上是在进行回环测试,即发送的数据会直接返回到接收端。<br><br>在未短接的情况下,MISO引脚由于悬空,可能会受到外部干扰,导致接收到0xFF(全高电平)。而当短接MOSI和MISO后,发送的数据(假设为0x00)会直接返回到接收端,因此接收到0x00。<br><br>为了确保SPI通信的正常工作,建议您:<br><br>1. 确保SPI初始化的配置正确,包括时钟极性、相位、数据位顺序等。<br>2. 检查硬件连接,确保MOSI和MISO引脚没有其他干扰源。<br>3. 如果使用外部设备,确保设备已正确配置并响应SPI通信。<br><br>通过这些步骤,您可以进一步验证SPI通信的稳定性和正确性。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-06-15 10:18:37
已绑定手机
已实名认证

112

主题

2387

回帖

6004

积分

版主

积分
6004
发表于 2025-3-12 21:59:34 | 显示全部楼层
是这样的,因为SPI是全双工方式,所以发送的同时,接收就到来了
但是逐飞库SPI函数内部实现上,发送确实是发送,但是接收仍然是发送一个0x00,然后获取读到的数据。
所以想要测试数据环回的话,需要使用示波器,或者更改
uint8 spi_read_8bit (spi_index_enum spi_n)
{
    return SPI_READ_DAT(spi_n, 0);
}
中,SPI_READ_DAT第二个参数的值
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:37
  • 最近打卡:2025-06-15 22:31:29
已绑定手机

0

主题

23

回帖

240

积分

中级会员

积分
240
发表于 2025-6-7 11:42:35 | 显示全部楼层
学习了
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 05:46 , Processed in 0.129957 second(s), 72 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表