2017-07-17 151 views
-1

當我在Keil開發代碼時,有一個發送函數;功能指針

HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, 
uint16_t Size, uint32_t Timeout) 

雖然我使用pData作爲指針,我添加上面像*(buf + spi_ri)我得到錯誤。 (uint8_t與參數類型「uint8_t」不兼容)

而當我聲明沒有指針(buf + spi_ri)時,沒有錯誤。

我必須得到緩衝區的指針它沒關係。但是,當我不使用(*)在 HAL_SPI_Transmit函數聲明是好的,或者我會讀取緩衝區,而不會指向緩衝區內?

感謝

void SPI_COM(uint8_t lenght,uint8_t *buf) 

{ 
     uint8_t spi_cnt = lenght; 

     uint8_t spi_wi = 0; 

     uint8_t spi_ri = 0; 

    while(spi_wi != spi_cnt) 
    { 
     if(__HAL_SPI_GET_FLAG(&hspi2, SPI_FLAG_TXE) && (spi_ri < lenght)) 

     { 
      //HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t 


     *pData, uint16_t Size, uint32_t Timeout) 


      HAL_SPI_Transmit(&hspi2, (buf+spi_ri), (uint16_t) 1, (uint32_t)100); 


     } 

    } 

ERROR PIC

+1

請發佈已編譯的代碼,以提供您正在描述的錯誤,並引用確切的錯誤消息。你顯示的是語法錯誤。 – lurker

+0

檢查你是不是將一個char *與一個byte *或const指針與一個非const或指向const的指針混合在一起。 – Ant

+0

剛編輯過的潛伏者 –

回答

0

你混合使用uint8_t指針uint8_t。