本帖最后由 Wenmin 于 2019-3-27 20:26 编辑
这是时序图片,以下是程序(写入芯片)
void ADN8810write(u16 num)
{
RESET=1;
delay_us(20);//¾àÕyêy¾Y′íλ
CS=0;
SPI1_ReadWriteByte(11);
SPI1_ReadWriteByte(num);
// SPI1_ReadWriteByte((u8)(num));
// delay_us(1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY)==SET){}//μè′yspi¿ÕÏD
// delay_us(2);
// delay_us(20);
delay_us(1);
CS=1;
RESET=0;
// RESET=1;
}
u8 SPI1_ReadWriteByte(u8 TxData)
{
SPI_I2S_SendData(SPI1, TxData); //í¨1yíaéèSPIx·¢Ëíò»¸öbyte êy¾Y
delay_us(3);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE)== RESET){}//μè′yspi¿ÕÏD
}
主函数功能是写入两个8位数据,逻辑分析仪的数据值正确,但为什么重复发了三次,而且CS片选线自己跳变。??????
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
控制的一款产生电流的芯片。采用单线spi,只有时钟线,SDI和CS片选三根线。目的是通过改变写入的数据,改变电流输出值
一周热门 更多>