Function esp_idf_svc::hal::sys::i2c_cmd_link_create_static
source · pub unsafe extern "C" fn i2c_cmd_link_create_static(
buffer: *mut u8,
size: u32,
) -> *mut c_void
Expand description
@brief Create and initialize an I2C commands list with a given buffer.
All the allocations for data or signals (START, STOP, ACK, …) will be
performed within this buffer.
This buffer must be valid during the whole transaction.
After finishing the I2C transactions, it is required to call i2c_cmd_link_delete_static()
.
@note It is highly advised to not allocate this buffer on the stack. The size of the data
used underneath may increase in the future, resulting in a possible stack overflow as the macro
I2C_LINK_RECOMMENDED_SIZE
would also return a bigger value.
A better option is to use a buffer allocated statically or dynamically (with malloc
).
@param buffer Buffer to use for commands allocations @param size Size in bytes of the buffer
@return Handle to the I2C command link or NULL if the buffer provided is too small, please
use I2C_LINK_RECOMMENDED_SIZE
macro to get the recommended size for the buffer.