找回密码
 立即注册
查看: 231|回复: 2

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

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:115
  • 最近打卡:2025-05-01 16:06:44
已绑定手机

2

主题

2

回帖

150

积分

注册会员

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

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 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
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2218

回帖

5450

积分

版主

积分
5450
发表于 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第二个参数的值
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:37 , Processed in 0.240771 second(s), 60 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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