打印
[产品应用]

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

[复制链接]
249|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
建议升级到最新固件库版本。

使用特权

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

本版积分规则

4

主题

13

帖子

0

粉丝