欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 關(guān)于AD7193的驅(qū)動(dòng) stm8s單片機(jī)SPI代碼編寫問(wèn)題 [打印本頁(yè)]

作者: tyx623521553    時(shí)間: 2019-10-10 16:59
標(biāo)題: 關(guān)于AD7193的驅(qū)動(dòng) stm8s單片機(jī)SPI代碼編寫問(wèn)題
下了官方的驅(qū)動(dòng),但是spi初始化以及讀取自己寫的,出現(xiàn)了問(wèn)題,關(guān)于spi不太懂他的步驟看一下我哪里寫錯(cuò)了?

unsigned char SPI_Read7193(unsigned char slaveDeviceId,
                       unsigned char* data,
                       unsigned char bytesNumber)
{
  unsigned char byte = 0;
  if(slaveDeviceId == AD7193_SLAVE_ID)PMOD1_CS_LOW;

  for(byte = 0; byte < bytesNumber; byte++)
  {
    while(SPI_GetFlagStatus(SPI_FLAG_RXNE) == RESET);
    *data++ = SPI_ReceiveData();

  }
  if(slaveDeviceId == AD7193_SLAVE_ID)PMOD1_CS_HIGH;

  return bytesNumber;
}


unsigned char SPI_Write7193(unsigned char slaveDeviceId,
                        unsigned char* data,
                        unsigned char bytesNumber)
{
  unsigned char byte = 0;
  if(slaveDeviceId == AD7193_SLAVE_ID)PMOD1_CS_LOW;

  for(byte = 0; byte < bytesNumber; byte++)
  {
    while(SPI_GetFlagStatus(SPI_FLAG_TXE) == RESET);
    SPI_SendData(*data++);

  }
  if(slaveDeviceId == AD7193_SLAVE_ID)PMOD1_CS_HIGH;

  return bytesNumber;
}





這個(gè)是官方給的別的單片機(jī)的例子,我不太了解這個(gè)單片機(jī)和寄存器,你們可以參考一下


unsigned char SPI_Read(unsigned char slaveDeviceId,
                       unsigned char* data,
                       unsigned char bytesNumber)
{
    unsigned char byte = 0;

    if(slaveDeviceId == 1)
    {
        PMOD1_CS_LOW;
    }
    if(slaveDeviceId == 2)
    {  
        ST7579_CS_LOW;
    }
    for(byte = 0; byte < bytesNumber; byte++)
    {
        SIO10 = data[byte];
        __no_operation();
        __no_operation();
        while(SSR02 & 0x0040);
        data[byte] = SIO10;
    }
    if(slaveDeviceId == 1)
    {
        PMOD1_CS_HIGH;
    }
    if(slaveDeviceId == 2)
    {
        ST7579_CS_HIGH;
    }

    return bytesNumber;
}

/***************************************************************************//**
* @brief Writes data to SPI.
*
* @param slaveDeviceId - The ID of the selected slave device.
* @param data - Data represents the write buffer.
* @param bytesNumber - Number of bytes to write.
*
* @return Number of written bytes.
*******************************************************************************/
unsigned char SPI_Write(unsigned char slaveDeviceId,
                        unsigned char* data,
                        unsigned char bytesNumber)
{
    unsigned char byte = 0;
    unsigned char read = 0;

    if(slaveDeviceId == 1)
    {
        PMOD1_CS_LOW;
    }
    if(slaveDeviceId == 2)
    {        
        ST7579_CS_LOW;          // Assert CS low
    }
    for(byte = 0; byte < bytesNumber; byte++)
    {
        SIO10 = data[byte];
        __no_operation();
        __no_operation();
        while(SSR02 & 0x0040);
        read = SIO10;
    }
    if(slaveDeviceId == 1)
    {
        PMOD1_CS_HIGH;
    }
    if(slaveDeviceId == 2)
    {
        ST7579_CS_HIGH;         // Assert CS high      
    }

    return bytesNumber;
}



作者: f556    時(shí)間: 2019-10-11 09:23
同系列的SPI都會(huì)不同,如MSP430的F149 與F2553程序差異大,你問(wèn)題又沒說(shuō)清,沒人能幫你




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1