ошибка: аргумент типа int несовместим с параметром типа uint8_t *

Я пытаюсь написать приложение I2C с HAL на STM32F401RE. Когда я записываю данные, я получаю эту ошибку. Вот мой код.

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 *). Как я могу преобразовать или разыграть его?


person Furkan Mola    schedule 09.11.2020    source источник
comment
Не помечайте вопрос как C, так и C++, если только вам не нравятся отрицательные голоса или вы конкретно не спрашиваете о разнице между тем, как работают C и C++. Выберите один языковой тег (для языка, который вы изучаете) и придерживайтесь его.   -  person Jonathan Leffler    schedule 09.11.2020
comment
HAL_I2C_Mem_Write, кажется, принимает 7 аргументов, но вы даете только 6.   -  person stark    schedule 09.11.2020
comment
ты прав. в коде я написал HAL_I2C_Mem_Write(hi2c, адрес, подадрес, 1, данные, 1, 100); но есть несколько ошибок по поводу uint8_t*   -  person Furkan Mola    schedule 09.11.2020


Ответы (1)


Вы передаете 0x01 (значение типа int) функции, ожидающей uint8_t*. (* означает, что ожидается указатель, а не значение.) Это невозможно, поскольку вы не можете указать указатель на несуществующую переменную.

Вам нужно добавить переменную с этим значением и передать ее как:

uint8_t data = 0x01;
HAL_I2C_Mem_Write(hi2c, MPU9250_ADDRESS, PWR_MGMT_1, &data, 1, 100);
person Tarick Welling    schedule 09.11.2020
comment
теперь я получаю сообщение об ошибке, что другие переменные определены многократно. я не могу понять, почему я получил эту ошибку. - person Furkan Mola; 09.11.2020
comment
@FurkanMola, если вы хотите получить реальный ответ на свой вопрос, вам нужно добавить минимальный воспроизводимый пример. Или другими словами. Добавьте самую маленькую функцию для того, что вы хотите сделать. Я не могу ответить, почему определены несколько переменных, потому что я не вижу, чтобы они были определены. - person Tarick Welling; 10.11.2020