求助!!!新手研究生spi单线发送模式,驱动一款芯片。采用逻辑分析仪采集到的数据正确,却出现连续传输三次的现象,写入芯片...

2019-07-20 02:55发布

本帖最后由 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片选线自己跳变。??????

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Wenmin
1楼-- · 2019-07-20 05:31
 精彩回答 2  元偷偷看……
Wenmin
2楼-- · 2019-07-20 10:42
板子用的是探索者F4
Wenmin
3楼-- · 2019-07-20 14:49
Wenmin 发表于 2019-3-27 18:26
板子用的是探索者F4

控制的一款产生电流的芯片。采用单线spi,只有时钟线,SDI和CS片选三根线。目的是通过改变写入的数据,改变电流输出值
Wenmin
4楼-- · 2019-07-20 19:47
 精彩回答 2  元偷偷看……

一周热门 更多>