打印
[产品应用]

cw32l010的SPI总线忙BUSY位不复位的问题

[复制链接]
364|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
freenes|  楼主 | 2025-4-25 22:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
昨天踩一坑,折腾一宿,具体如下:
cw32l010硬件SPI,主机单线发送,在SPI的总线忙BUSY位在发送完毕后也不复位,用while检测忙死循环。后来发现必须在SPI使能前配置复用SPI_CLK的GPIO才正常。先使能SPI再配置复用GPIO就不复位,但发送数据正常,这是个BUG么?

使用特权

评论回复
沙发
elephant00| | 2025-5-13 11:13 | 只看该作者
先完成GPIO的复用配置,再使能SPI外设。

使用特权

评论回复
板凳
jcky001| | 2025-5-13 16:00 | 只看该作者
初始化顺序冲突?

使用特权

评论回复
地板
duo点| | 2025-5-13 17:00 | 只看该作者
在发送数据前,主动检查并清除BUSY位,避免因硬件状态异常导致死循环。

使用特权

评论回复
5
cr315| | 2025-5-13 19:00 | 只看该作者
硬件状态机未同步?SPI外设的BUSY位由硬件状态机控制,其复位依赖内部时钟同步和GPIO状态。若GPIO配置与SPI使能顺序错误,状态机可能陷入未定义状态(,即使数据发送完成,BUSY位仍保持置位。

使用特权

评论回复
6
内政奇才| | 2025-5-13 21:00 | 只看该作者
建议升级到最新固件库版本。

使用特权

评论回复
7
Charlotte夏| | 2025-6-8 11:20 | 只看该作者
这种情况可能是硬件初始化时序或库函数实现导致的非预期行为,但严格来说不一定属于芯片本身的BUG,更多是初始化流程与硬件设计的匹配问题

使用特权

评论回复
8
EuphoriaV| | 2025-6-8 12:25 | 只看该作者
CW32L010的SPI外设需要GPIO复用功能支持,若在SPI使能后配置GPIO复用,可能导致时钟信号(SPI_CLK)的初始化状态异常。此时SPI模块可能无法正确检测总线状态,导致BUSY位无法复位。

使用特权

评论回复
9
EuphoriaV| | 2025-6-8 12:25 | 只看该作者
CW32L010的SPI外设需要GPIO复用功能支持,若在SPI使能后配置GPIO复用,可能导致时钟信号(SPI_CLK)的初始化状态异常。此时SPI模块可能无法正确检测总线状态,导致BUSY位无法复位。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

13

帖子

0

粉丝