Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of X_NUCLEO_COMMON by
DevI2C Class Reference
Helper class DevI2C providing functions for multi-register I2C communication common for a series of I2C devices. More...
#include <DevI2C.h>
Public Member Functions | |
| DevI2C (PinName sda, PinName scl) | |
| Create a DevI2C Master interface, connected to the specified pins. | |
| DevI2C (PinName sda, int mode_sda, PinName scl, int mode_scl) | |
| Create a DevI2C Master interface, connected to the specified pins and set their pin modes. | |
| int | i2c_write (uint8_t *pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, uint16_t NumByteToWrite) |
| Writes a buffer towards the I2C peripheral device. | |
| int | i2c_read (uint8_t *pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, uint16_t NumByteToRead) |
| Reads a buffer from the I2C peripheral device. | |
Detailed Description
Helper class DevI2C providing functions for multi-register I2C communication common for a series of I2C devices.
Definition at line 51 of file DevI2C.h.
Constructor & Destructor Documentation
| DevI2C | ( | PinName | sda, |
| PinName | scl | ||
| ) |
| DevI2C | ( | PinName | sda, |
| int | mode_sda, | ||
| PinName | scl, | ||
| int | mode_scl | ||
| ) |
Create a DevI2C Master interface, connected to the specified pins and set their pin modes.
- Parameters:
-
sda I2C data line pin sda I2C data pin mode scl I2C clock line pin scl I2C clock pin mode
- Note:
- this is a workaround to provide a constructor which currently is somehow missing in the I2C base class and it's underlying implementations. In some circumstances (e.g. while debugging) where long latencies between the initialization of the i2c interface in the I2C constructor and the setting of the pin modes in the beyond constructor might occur, the i2c communication might be compromised.
Member Function Documentation
| int i2c_read | ( | uint8_t * | pBuffer, |
| uint8_t | DeviceAddr, | ||
| uint8_t | RegisterAddr, | ||
| uint16_t | NumByteToRead | ||
| ) |
Reads a buffer from the I2C peripheral device.
- Parameters:
-
pBuffer pointer to the byte-array to read data in to DaviceAddr specifies the peripheral device slave address. RegisterAddr specifies the internal address register where to start reading from (must be correctly masked). NumByteToRead number of bytes to be read.
- Return values:
-
0 if ok, -1 if an I2C error has occured
- Note:
- On some devices if NumByteToWrite is greater than one, the RegisterAddr must be masked correctly!
| int i2c_write | ( | uint8_t * | pBuffer, |
| uint8_t | DeviceAddr, | ||
| uint8_t | RegisterAddr, | ||
| uint16_t | NumByteToWrite | ||
| ) |
Writes a buffer towards the I2C peripheral device.
- Parameters:
-
pBuffer pointer to the byte-array data to send DeviceAddr specifies the peripheral device slave address. RegisterAddr specifies the internal address register where to start writing to (must be correctly masked). NumByteToWrite number of bytes to be written.
- Return values:
-
0 if ok, -1 if an I2C error has occured, or -2 on temporary buffer overflow (i.e. NumByteToWrite was too high)
- Note:
- On some devices if NumByteToWrite is greater than one, the RegisterAddr must be masked correctly!
Generated on Wed Jul 13 2022 23:42:58 by
1.7.2
