2019-07-21 01:33发布
csmjmcc 发表于 2017-12-29 10:53 贴出程序和器件名称,才能解答
正点原子 发表于 2017-12-30 00:40 可能你的器件没有应答,看MISO波形就知道了
最多设置5个标签!
原子的代码应该不会有问题。
我用的器件是epc610,比较偏的一个,用的SPI2,工作于主模式下的全双工,发送读取函数就是
u16 SPI2_ReadWriteByte(u16 TxData)
{
u8 retry=0;
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET)
{
retry++;
if(retry>200) return 0;
printf ("%s ", "regular write always busy! RETRY SEND " );
}
SPI_I2S_SendData(SPI2, TxData); //í¨1yíaéèSPIx·¢Ëíò»¸öêy¾Y
retry=0;
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET)
{
retry++;
if(retry>200)return 0;
printf ("%s ", "regular write always busy! RETRY RECIVE" );
}
return SPI_I2S_ReceiveData(SPI2);
printf ("%s ", "regular write always busy!" );
}
就是正点原子的代码啊
原子哥,我后来查了一下,又发现在全双工双向下,对相同寄存器读回数据的时候,会读回不同的数据,实际上应该是相同的,因为是测试,所以我确定读回的数据是什么,但是有时候读回是正确的,有时候是错误的,想知道有没有可能是丛机晶振不正常工作的原因?
一周热门 更多>