指针功能

时间:2017-07-17 14:39:17

标签: c pointers keil

当我在Keil开发代码时,有一个传输功能;

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

虽然我使用pData作为指针,因为我添加上面像*(buf + spi_ri)我得到错误。 (uint8_t与类型&#34的参数不兼容; 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 个答案:

答案 0 :(得分:0)

您正在使用uint8_t指针混合uint8_t。