找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

SPI无法收到数据问题,该如何调试?附MCU程序

查看数: 2167 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-10-28 11:44

正文摘要:

MCU程序: 但是调试的DR寄存器一直是FF,SPI接收函数按道理应该没有问题 uint8 SPI_SendByte(SPI_TypeDef * SPIx, uint8 byte) {           while (SPI_I2S_GetFlagStatus(S ...

回复

ID:1045628 发表于 2022-10-31 08:54
解决了,
因为我初始化了好几个SPI,且标准包程序宏定义有迷惑性
#define GPIO_AF_SPI4         ((uint8_t)0x05)
#define GPIO_AF_SPI5         ((uint8_t)0x05)
这是AF5,SPI5实际上是AF6,
#define GPIO_AF6_SPI5         ((uint8_t)0x06)
是因为SPI5初始化时把SPI4的初始化覆盖了一部分,导致SPI4MISO口出现变化
ID:123289 发表于 2022-10-29 09:14
1、搞清SPI通讯原理。
2、有示波器更好了,可以证明,数据的确是正确地出现在数据线上了。
3、读通CPU芯片手册上,关于SPI的通讯章节。
4、去除程序中所有与SPI无关的部分(排除干扰)
5、检查程序有无准确地按照【3、】中的说明去做。
6、走单步调试。
ID:1045628 发表于 2022-10-28 11:47
补上逻辑分析仪和调试的图

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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