簡體   English   中英

錯誤:“int”類型的參數與“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM