CY8CKIT-059透過SPI與ESP8266通訊

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
user_3716231
Level 4
Level 4
25 sign-ins 10 sign-ins 5 sign-ins

專案描述:

1.CY8CKIT-059為Master,ESP8266 mini d1為Slave

2.Master每2秒就跟Slave通訊一次,每次通訊數值就加1

問題:

我不知道為什麼Slave每次都收到"Master : 0",數值沒有加1,如下圖:slave_1.JPG

若將CY8CKIT-059換成另一塊ESP8266模組,也就是Master跟Slave都是ESP8266模組,每次通訊數值就會加1,如下圖:

slave_2.JPG

邏輯分析:logic analyzer.JPG

0 点赞
1 解答
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

while((SPIM_1_ReadTxStatus() & SPIM_1_STS_SPI_IDLE) == 0) 逻辑上有漏洞,因为此位置 TxStatus 不一定就是 idle, 还可能是 Done, 而且我建议你使用 if(SPIM_1_ReadTxStatus() & (SPIM_1_STS_SPI_IDLE | SPIM_1_STS_SPI_DONE)) 这样的用法,然后把 WriteTx 动作放在 if 语句之内。

在原帖中查看解决方案

0 点赞
1 回复
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

while((SPIM_1_ReadTxStatus() & SPIM_1_STS_SPI_IDLE) == 0) 逻辑上有漏洞,因为此位置 TxStatus 不一定就是 idle, 还可能是 Done, 而且我建议你使用 if(SPIM_1_ReadTxStatus() & (SPIM_1_STS_SPI_IDLE | SPIM_1_STS_SPI_DONE)) 这样的用法,然后把 WriteTx 动作放在 if 语句之内。

0 点赞