当我在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 );
}
}
答案 0 :(得分:0)
您正在使用uint8_t指针混合uint8_t。