[英]argument of type “uint8_t” is incompatible with parameter of type “uint8_t *”
[英]error: argument of type "int" is incompatible with parameter of type "uint8_t *"
我正在嘗試在 STM32F401RE 上使用 HAL 編寫 I2C 應用程序。 當我寫入數據時,出現此錯誤。 這是我的代碼。
HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
HAL_I2C_Mem_Write(hi2c, MPU9250_ADDRESS, PWR_MGMT_1, 0x01, 1, 100);
其中 0x01 必須是 (uint8_t *) 形式。 我該如何轉換或投射它?
您將0x01
(一個int
類型的值)傳遞給一個需要uint8_t*
的函數。 ( *
表示它需要一個指針而不是一個值。)這是不可能的,因為您不能將指針指向不存在的變量。
您需要添加一個具有該值的變量並將其傳遞為:
uint8_t data = 0x01;
HAL_I2C_Mem_Write(hi2c, MPU9250_ADDRESS, PWR_MGMT_1, &data, 1, 100);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.