主题中讨论的其他器件: C2000WARE
大家好、
您能为我们的客户在 TMDSCNCD28335中遇到的问题提供帮助 吗? 我们的客户表示。
大家好、我的 F28335 SPI 通信有问题、我断开了所有电缆、但它读取了我发送的内容、就像激活了回路一样
我确定我的这个寄存器为零:SpiaRegs.SPICCR.bit.SPILBK = 0;
尽管我想问您是否对它有任何想法
比如、在回送模式下、可能会发生这种情况、但如果我关闭回送模式、它如何接收它发送的同一条消息
我的意思是、我尝试与另一个板(TMDSCNCD28335)相同的型号进行通信、但信号不是被发送的、而是被自己读取的、因此这是整个问题
关于对示波器上的线路进行监控、我无法在 SIMO 和 SOMI 线路上看到任何数据、尽管 SPICLKA 和 SPISTEA 线路在设定的频率下按预期工作。 附加后、您将在示波器中找到一个捕获、其中监视 SPICLKA、SPISTEA、SIMO 和 MOSI 线路、并分别对应绿色、Yello、蓝色和洋红色。
虽然在示波器上看不到任何信息、但每次我发送一个帧时、缓冲区"SpiaRegs.SPIRXBUF"都会读取该帧。
他还在另一封电子邮件中添加了内容。
现在、我要在两个板之间进行通信测试、一个板配置为主板、另一个板配置为从板。 测试包括主器件向从器件发送消息、并将4根电缆连接到各自的引脚。 从器件正确读取主器件发送的信息、但当我断开 SOMI 电缆时、从器件停止读取、这种情况不应发生。 此外、主器件继续读取其自身的消息。 我在主器件和从器件中使用的代码如下所示、其中 while (1)只是等待缓冲区接收任何消息、然后将其读取到数组中。
if (SpiaRegs.SPIFFRX.bit.RXFFST > 15){
for (i=0;i<16;i++){
Read[i]= SpiaRegs.SPIRXBUF;
if (i==16){
SpiaRegs.SPIFFRX.bit.RXFIFORESET = 0;//复位 RX-FIFO 指针
SpiaRegs.SPIFFRX.bit.RXFIFORESET = 1;//启用 RX 操作
}
}
}
发送消息的代码如下:
if (sendmsg==1){
for (i=0;i<16;i++) SpiaRegs.SPITXBUF= send[i];
}//if 发送
大家好、只是想更新有关示波器读数的信息。 我´mn´t 我能够捕获帧的原因、但现在我知道了、所以我附加了 CLK、SIMO 和 SOMI (绿色、品红色、蓝色)读数的捕获。 可以看出、SOMI 始终处于高电平状态。
此致、
Danilo