野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 289|回复: 5

请教一个关于野火指南者例程spi的问题

[复制链接]
发表于 2024-5-17 07:45:48 | 显示全部楼层 |阅读模式
将野火spi例程移植到clion下,前面不能说一帆风顺把,遇到问题也基本上都解决了。到移植spi例程上,基本上都是全抄例程的。除了个别几个宏定义改了名字,还有为了我自己方便把有些内容分配到几个文件里。基本没有改变程序内容。

运行例程按结果查看,却显示接收超时。
进一步通过debug来排除问题。记下程序调试时spi寄存器内容,发现例程和我移植的程序上,在spi相关cr1寄存器上不一样。

例程上spi cr1寄存器是0x034f;而我移植的程序cr1寄存器是0x030f;再具体看是例程SPE寄存器置1了,而我移植的没有。

查相关cr寄存器的相关资料。说是nss在高位是SPE寄存器才可以置位,于是在spi的gpio线选初始化部分确认将PC0口线置高位。情况依旧。

请有经验的来解答一下?

屏幕截图 2024-05-17 074215.png
屏幕截图 2024-05-17 074506.png
回复

使用道具 举报

 楼主| 发表于 2024-5-17 07:49:48 | 显示全部楼层
移植的程序运行情况就是这样。

明显spi没有正常工作。
屏幕截图 2024-05-17 074801.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-18 07:52:04 | 显示全部楼层
寄存器问题已解决,是我读源程序不够细致。
在移植程序spi初始化spi1_init()函数中加了一句:__HAL_SPI_ENABLE
加了这句后寄存器值一致了,但是运行结果还是一样?
始终读不出W25Q64的器件ID
回复 支持 反对

使用道具 举报

发表于 2024-5-22 15:58:40 | 显示全部楼层
建议你先试试SPI的驱动是否正确,用逻辑分析仪看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-23 16:49:06 | 显示全部楼层
微信用户-Zr9DCi 发表于 2024-5-22 15:58
建议你先试试SPI的驱动是否正确,用逻辑分析仪看看。

感谢建议,我试试!
回复 支持 反对

使用道具 举报

发表于 2024-6-8 15:14:09 | 显示全部楼层
你可能是没有给SPI 时钟,你可以直接写一个寄存器试一下,如果能正常写入,说明你的SPI 是能响应的,写入的没有设置对应的值,可能就是APB2 对应的SPI 时钟使能没有设置,或者是 寄存器配置的代码执行 在 SPI初始化代码前面
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-18 11:01 , Processed in 0.127886 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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