uEye Camera Manual Version 4.92
![]() |
![]() |
USB 2.0 USB 3.0 GigE |
USB 2.0 USB 3.0 GigE |
Syntax
INT is_WriteI2C (HIDS hCam, INT nDeviceAddr, INT nRegisterAddr, BYTE* pbData, INT nLen)
Description
Using is_WriteI2C(), you can write data via the I2C bus of a board level camera.
The uEye camera processes I2C addresses in a 7-bit format that is created from the 8-bit format by a bit shift to the right. The eighth bit indicates whether an address is a read (1) or write (0) address. For example, the 7-bit address 0x48 is the write address 0x90 and the read address 0x91 in 8-bit format.
For information on the signals applied to the I2C bus, refer to the D: Specifications chapters.
![]() |
I2C functions are only supported by the PCB versions of the camera series uEye LE USB 3.1 Gen 1, USB 3 uEye LE, USB uEye LE, and GigE uEye LE. |
![]() |
If you write data on a micro controller via the uEye camera, make sure that the micro controller confirms the transfer with an ACK message. |
![]() |
The following addresses for nDeviceAddr are assigned to the uEye camera and must not be used: 7-bit format: 0x10, 0x48, 0x4C, 0x50, 0x51, 0x52, 0x55, 0x5C, 0x5D, 0x69, 0x77 8-bit format: 0x20, 0x90, 0x98, 0xA0, 0xA2, 0xA4, 0xAA, 0xB8, 0xBA, 0xD2, 0xEE For UI-336x/UI-536x and UI-337x/UI-537x: 0x82 |
Input parameters
hCam |
Camera handle |
nDeviceAddr |
Device address (8 bit format) |
nDeviceAddr | IS_I2C_DONT_WAIT |
By default, it is polled when the byte is actually written to the storage cell. If IS_I2C_DONT_WAIT is ORed to nDeviceAddr there will be no polling. |
nRegisterAddr |
Address of a 8 bit register (only 8-bit addresses are valid) |
nRegisterAddr | |
Address of a 16 bit register |
nRegisterAddr | |
If only a device address but no register address exists. |
pbData |
Data to be written |
nLen |
Data length (max. 62 byte) |
Return values
IS_CANT_COMMUNICATE_WITH_DRIVER |
Communication with the driver failed because no driver has been loaded. |
IS_CANT_OPEN_DEVICE |
An attempt to initialize or select the camera failed (no camera connected or initialization error). |
IS_INVALID_CAMERA_HANDLE |
Invalid camera handle |
IS_INVALID_I2C_DEVICE_ADDRESS |
Invalid I2C device address |
IS_INVALID_PARAMETER |
One of the submitted parameters is outside the valid range or is not supported for this sensor or is not available in this mode. |
IS_IO_REQUEST_FAILED |
An IO request from the uEye driver failed. Possibly the versions of the ueye_api.dll (API) and the driver file (ueye_usb.sys or ueye_eth.sys) do not match. This error code is also returned if the micro controller does not report back with ACK. |
IS_NO_SUCCESS |
General error message |
IS_SUCCESS |
Function executed successfully |
Related functions
•is_DeviceFeature: Setting the I2C stop bit
Example
// ------------------------------------------------------
// Write to I2C device:
//
// 16 bit register addressing
// Note:
// Only writing 2 bytes at once is allowed
is_WriteI2C (hCam, DevAdr, RegAdr | IS_I2C_16_BIT_REGISTER, pbData, 2);
// 8 bit register addressing
// Note:
// Writing 1 or 2 bytes at once is allowed
// Writing 1 byte
is_WriteI2C (hCam, DevAdr, RegAdr, pbData, 1);
// Writing 2 bytes
is_WriteI2C (hCam, DevAdr, RegAdr, pbData, 2);
// ------------------------------------------------------
// Read from I2C device:
//
// 16 bit register addressing
is_ReadI2C (hCam, DevAdr, RegAdr | IS_I2C_16_BIT_REGISTER, pbData, 2);
// 8 bit register addressing
// Reading 1 byte
is_ReadI2C (hCam, DevAdr, RegAdr, pbData, 1);
// Reading 2 bytes
is_ReadI2C (hCam, DevAdr, RegAdr, pbData, 2);
// ------------------------------------------------------
// Example values
// Device address (from device data sheet): 0x40
// Device address in 8 bit format (after left shift): 0x80
// Device address for write (generated by is_WriteI2C()): 0x80
// Device address for read (generated by is_ReadI2C()) 0x81
// Write value 0x52 to device with address 0x40 in register 0x00
BYTE bValue = 0x52;
is_WriteI2C (hCam, 0x80, 0x00, &bValue, 1);
// Read from device with address 0x40, register 0x00
INT nVal;
BYTE bValue = 0;
is_ReadI2C (hCam, 0x80, 0x00, &bValue, 1);
Suggestion for improvement? Send us your short
Feedback on this chapter.
Thank you very much!
For technical questions please contact your local distributor or use the support form on our website.