你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
党国特派员 发表于 2015-1-28 09:30 从模式没法主动发数据,只有能过中断请求来主动发数据
chunchun 发表于 2015-1-28 09:17 从模式可以主动发送数据吧。
飞翔的起点 发表于 2015-1-28 09:40 SPI从机是不能主动发数据的 ,因为时钟是主机提供的。而你说AD73360持续在提供时钟,这个时候你的SPI从机 ...
cxtarm 发表于 2015-1-28 12:54 不可以。。。
chunchun 发表于 2015-1-28 13:22 AD73360持续在提供时钟,这个时候SPI从机是可以发数据的
cxtarm 发表于 2015-1-28 18:12 那不叫发数据,只是从机将数据放在发送寄存器里面,等待时钟过来后主机读取。 ...
二十四节气~大雪
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
tiwen
BBBB
aaa
2222
我是在中断的时候给AD73360发送数据的。你看我的代码。
void EXTI0_IRQHandler(void)
{
if(RESET != EXTI_GetFlagStatus(EXTI_Line0))
{
if(exti0_cnt == 0)
{SPI_SendData( 0x8000 );} //CRA,Program Mode
else if(exti0_cnt == 1)
{SPI_SendData( 0x8104 );} //CRB,Decimation Rate£¬8KHz
else if(exti0_cnt == 2)
{SPI_SendData( 0x8261 );} //CRC
else if(exti0_cnt == 3)
{SPI_SendData( 0x8388 );} //CRD,open ADC1,ADC2
else if(exti0_cnt == 4)
{SPI_SendData( 0x8408 );} //CRE,open ADC3,close ADC4
else if(exti0_cnt == 5)
{SPI_SendData( 0x8500 );} //CRF,close ADC5,ADC6
else if(exti0_cnt == 6)
{SPI_SendData( 0x8600 );} //CRG
else if(exti0_cnt == 7)
{SPI_SendData( 0x8700 );} //CRH
else if(exti0_cnt == 8)
{SPI_SendData( 0x8001 );} //CRA,Data Mode
else if(exti0_cnt == 9)
{SPI_SendData( 0x7fff);} /*¹Ø±Õ¿ØÖÆ×Ö·¢ËÍ*/
else if(exti0_cnt >= 10)
{
while(SPI_ReceptionFIFOStatus_Empty != SPI_GetReceptionFIFOStatus(SPI3))
{
ADDataBuffer[SampleNum] = SPI_I2S_ReceiveData16(SPI3); //½ÓÊÕÊý¾Ý
SampleNum++;
}
}
if(SampleNum >= 320)
{
SampleNum = 0;
}
if(exti0_cnt > 250)
{
exti0_cnt = 10;
}
exti0_cnt++;
}
}
SPI从机是不能主动发数据的 ,因为时钟是主机提供的。而你说AD73360持续在提供时钟,这个时候你的SPI从机是可以发数据的
恩。是的。但是我发送的数据却不是一次性的那种。在我发第一个控制字时还正常,发第二个时,数据在MISO上周期性连续。第三个叠加在第二个上,依次类推。但是发送完最后一个后,MISO线上就固定为一个周期性方波了。 好奇怪啊
不可以。。。
AD73360持续在提供时钟,这个时候SPI从机是可以发数据的
那不叫发数据,只是从机将数据放在发送寄存器里面,等待时钟过来后主机读取。
楼主说的MISO上有叠加信号又是什么意思呢?
是杂波吗?还是楼主没有完全描述完问题现象??
二十四节气~大雪