File I2cController.hpp
FileList > fw > rbcx-coprocessor > include > I2cController.hpp
Go to the source code of this file.
#include "rbcx.pb.h"
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "stm32f1xx_hal.h"
#include "FreeRTOS.h"
#include "task.h"
#include "event_groups.h"
Public Types
Type | Name |
---|---|
enum uint32_t | I2cEvents |
Public Attributes
Type | Name |
---|---|
EventGroupHandle_t | i2cEventGroup |
TaskHandle_t | i2cTaskHandle |
Public Functions
Type | Name |
---|---|
uint8_t | I2Cdev_IsDeviceReady (uint16_t DevAddress, uint32_t Trials=2, uint32_t Timeout=0) |
uint8_t | I2Cdev_Master_Receive (uint16_t DevAddress, uint8_t * pData, uint16_t Size, uint32_t Timeout) |
uint8_t | I2Cdev_Master_Transmit (uint16_t DevAddress, uint8_t * pData, uint16_t Size, uint32_t Timeout) |
uint8_t | I2Cdev_Mem_Read (uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t * pData, uint16_t Size, uint32_t Timeout) |
uint8_t | I2Cdev_Mem_Write (uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t * pData, uint16_t Size, uint32_t Timeout) |
uint8_t | I2Cdev_Slave_Receive (uint8_t * pData, uint16_t Size, uint32_t Timeout) |
uint8_t | I2Cdev_Slave_Transmit (uint8_t * pData, uint16_t Size, uint32_t Timeout) |
uint8_t | I2Cdev_init () |
uint8_t | I2Cdev_readBit (uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint8_t * data, uint16_t timeout) |
uint8_t | I2Cdev_readBitW (uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint16_t * data, uint16_t timeout) |
uint8_t | I2Cdev_readBits (uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint8_t * data, uint16_t timeout) |
uint8_t | I2Cdev_readBitsW (uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint16_t * data, uint16_t timeout) |
uint8_t | I2Cdev_readByte (uint8_t devAddr, uint8_t regAddr, uint8_t * data, uint16_t timeout) |
uint8_t | I2Cdev_readBytes (uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8_t * data, uint16_t timeout) |
uint8_t | I2Cdev_readWord (uint8_t devAddr, uint8_t regAddr, uint16_t * data, uint16_t timeout) |
uint8_t | I2Cdev_readWords (uint8_t devAddr, uint8_t regAddr, uint8_t length, uint16_t * data, uint16_t timeout) |
uint8_t | I2Cdev_scan () |
uint16_t | I2Cdev_writeBit (uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint8_t data) |
uint16_t | I2Cdev_writeBitW (uint8_t devAddr, uint8_t regAddr, uint8_t bitNum, uint16_t data) |
uint16_t | I2Cdev_writeBits (uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint8_t data) |
uint16_t | I2Cdev_writeBitsW (uint8_t devAddr, uint8_t regAddr, uint8_t bitStart, uint8_t length, uint16_t data) |
uint16_t | I2Cdev_writeByte (uint8_t devAddr, uint8_t regAddr, uint8_t data) |
uint16_t | I2Cdev_writeBytes (uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8_t * data) |
uint16_t | I2Cdev_writeWord (uint8_t devAddr, uint8_t regAddr, uint16_t data) |
uint16_t | I2Cdev_writeWords (uint8_t devAddr, uint8_t regAddr, uint8_t length, uint16_t * data) |
void | i2cDispatch (const CoprocReq_I2cReq & req) |
void | i2cReset () |
Macros
Type | Name |
---|---|
define | I2CDEV_DEFAULT_READ_TIMEOUT 10 |
Public Types Documentation
enum I2cEvents
enum I2cEvents {
I2C_NONE = 0,
I2C_MPU_TICK = 1,
I2C_MESSAGE = 2
};
Public Attributes Documentation
variable i2cEventGroup
EventGroupHandle_t i2cEventGroup;
variable i2cTaskHandle
TaskHandle_t i2cTaskHandle;
Public Functions Documentation
function I2Cdev_IsDeviceReady
uint8_t I2Cdev_IsDeviceReady (
uint16_t DevAddress,
uint32_t Trials=2,
uint32_t Timeout=0
)
function I2Cdev_Master_Receive
uint8_t I2Cdev_Master_Receive (
uint16_t DevAddress,
uint8_t * pData,
uint16_t Size,
uint32_t Timeout
)
function I2Cdev_Master_Transmit
uint8_t I2Cdev_Master_Transmit (
uint16_t DevAddress,
uint8_t * pData,
uint16_t Size,
uint32_t Timeout
)
function I2Cdev_Mem_Read
uint8_t I2Cdev_Mem_Read (
uint16_t DevAddress,
uint16_t MemAddress,
uint16_t MemAddSize,
uint8_t * pData,
uint16_t Size,
uint32_t Timeout
)
function I2Cdev_Mem_Write
uint8_t I2Cdev_Mem_Write (
uint16_t DevAddress,
uint16_t MemAddress,
uint16_t MemAddSize,
uint8_t * pData,
uint16_t Size,
uint32_t Timeout
)
function I2Cdev_Slave_Receive
uint8_t I2Cdev_Slave_Receive (
uint8_t * pData,
uint16_t Size,
uint32_t Timeout
)
function I2Cdev_Slave_Transmit
uint8_t I2Cdev_Slave_Transmit (
uint8_t * pData,
uint16_t Size,
uint32_t Timeout
)
function I2Cdev_init
uint8_t I2Cdev_init ()
function I2Cdev_readBit
uint8_t I2Cdev_readBit (
uint8_t devAddr,
uint8_t regAddr,
uint8_t bitNum,
uint8_t * data,
uint16_t timeout
)
Read a single bit from an 8-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to read frombitNum
Bit position to read (0-7)data
Container for single bit valuetimeout
Optional read timeout in milliseconds (0 to disable, leave off to use default class value in I2Cdev_readTimeout)
Returns:
Status of read operation (true = success)
function I2Cdev_readBitW
uint8_t I2Cdev_readBitW (
uint8_t devAddr,
uint8_t regAddr,
uint8_t bitNum,
uint16_t * data,
uint16_t timeout
)
Read a single bit from a 16-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to read frombitNum
Bit position to read (0-15)data
Container for single bit valuetimeout
Optional read timeout in milliseconds (0 to disable, leave off to use default class value in I2Cdev_readTimeout)
Returns:
Status of read operation (true = success)
function I2Cdev_readBits
uint8_t I2Cdev_readBits (
uint8_t devAddr,
uint8_t regAddr,
uint8_t bitStart,
uint8_t length,
uint8_t * data,
uint16_t timeout
)
Read multiple bits from an 8-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to read frombitStart
First bit position to read (0-7)length
Number of bits to read (not more than 8)data
Container for right-aligned value (i.e. '101' read from any bitStart position will equal 0x05)timeout
Optional read timeout in milliseconds (0 to disable, leave off to use default class value in I2Cdev_readTimeout)
Returns:
Status of read operation (true = success)
function I2Cdev_readBitsW
uint8_t I2Cdev_readBitsW (
uint8_t devAddr,
uint8_t regAddr,
uint8_t bitStart,
uint8_t length,
uint16_t * data,
uint16_t timeout
)
Read multiple bits from a 16-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to read frombitStart
First bit position to read (0-15)length
Number of bits to read (not more than 16)data
Container for right-aligned value (i.e. '101' read from any bitStart position will equal 0x05)timeout
Optional read timeout in milliseconds (0 to disable, leave off to use default class value in I2Cdev_readTimeout)
Returns:
Status of read operation (1 = success, 0 = failure, -1 = timeout)
function I2Cdev_readByte
uint8_t I2Cdev_readByte (
uint8_t devAddr,
uint8_t regAddr,
uint8_t * data,
uint16_t timeout
)
Read single byte from an 8-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to read fromdata
Container for byte value read from devicetimeout
Optional read timeout in milliseconds (0 to disable, leave off to use default class value in I2Cdev_readTimeout)
Returns:
Status of read operation (true = success)
function I2Cdev_readBytes
uint8_t I2Cdev_readBytes (
uint8_t devAddr,
uint8_t regAddr,
uint8_t length,
uint8_t * data,
uint16_t timeout
)
Read multiple bytes from an 8-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
First register regAddr to read fromlength
Number of bytes to readdata
Buffer to store read data intimeout
Optional read timeout in milliseconds (0 to disable, leave off to use default class value in I2Cdev_readTimeout)
Returns:
Number of bytes read (-1 indicates failure)
function I2Cdev_readWord
uint8_t I2Cdev_readWord (
uint8_t devAddr,
uint8_t regAddr,
uint16_t * data,
uint16_t timeout
)
Read single word from a 16-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to read fromdata
Container for word value read from devicetimeout
Optional read timeout in milliseconds (0 to disable, leave off to use default class value in I2Cdev_readTimeout)
Returns:
Status of read operation (true = success)
function I2Cdev_readWords
uint8_t I2Cdev_readWords (
uint8_t devAddr,
uint8_t regAddr,
uint8_t length,
uint16_t * data,
uint16_t timeout
)
Read multiple words from a 16-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
First register regAddr to read fromlength
Number of words to readdata
Buffer to store read data intimeout
Optional read timeout in milliseconds (0 to disable, leave off to use default class value in I2Cdev_readTimeout)
Returns:
Number of words read (-1 indicates failure)
function I2Cdev_scan
uint8_t I2Cdev_scan ()
function I2Cdev_writeBit
uint16_t I2Cdev_writeBit (
uint8_t devAddr,
uint8_t regAddr,
uint8_t bitNum,
uint8_t data
)
write a single bit in an 8-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to write tobitNum
Bit position to write (0-7)value
New bit value to write
Returns:
Status of operation (true = success)
function I2Cdev_writeBitW
uint16_t I2Cdev_writeBitW (
uint8_t devAddr,
uint8_t regAddr,
uint8_t bitNum,
uint16_t data
)
write a single bit in a 16-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to write tobitNum
Bit position to write (0-15)value
New bit value to write
Returns:
Status of operation (true = success)
function I2Cdev_writeBits
uint16_t I2Cdev_writeBits (
uint8_t devAddr,
uint8_t regAddr,
uint8_t bitStart,
uint8_t length,
uint8_t data
)
Write multiple bits in an 8-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to write tobitStart
First bit position to write (0-7)length
Number of bits to write (not more than 8)data
Right-aligned value to write
Returns:
Status of operation (true = success)
function I2Cdev_writeBitsW
uint16_t I2Cdev_writeBitsW (
uint8_t devAddr,
uint8_t regAddr,
uint8_t bitStart,
uint8_t length,
uint16_t data
)
Write multiple bits in a 16-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register regAddr to write tobitStart
First bit position to write (0-15)length
Number of bits to write (not more than 16)data
Right-aligned value to write
Returns:
Status of operation (true = success)
function I2Cdev_writeByte
uint16_t I2Cdev_writeByte (
uint8_t devAddr,
uint8_t regAddr,
uint8_t data
)
Write single byte to an 8-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register address to write todata
New byte value to write
Returns:
Status of operation (true = success)
function I2Cdev_writeBytes
uint16_t I2Cdev_writeBytes (
uint8_t devAddr,
uint8_t regAddr,
uint8_t length,
uint8_t * data
)
Write multiple bytes to an 8-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
First register address to write tolength
Number of bytes to writedata
Buffer to copy new data from
Returns:
Status of operation (true = success)
function I2Cdev_writeWord
uint16_t I2Cdev_writeWord (
uint8_t devAddr,
uint8_t regAddr,
uint16_t data
)
Write single word to a 16-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
Register address to write todata
New word value to write
Returns:
Status of operation (true = success)
function I2Cdev_writeWords
uint16_t I2Cdev_writeWords (
uint8_t devAddr,
uint8_t regAddr,
uint8_t length,
uint16_t * data
)
Write multiple words to a 16-bit device register.
Parameters:
devAddr
I2C slave device addressregAddr
First register address to write tolength
Number of words to writedata
Buffer to copy new data from
Returns:
Status of operation (true = success)
function i2cDispatch
void i2cDispatch (
const CoprocReq_I2cReq & req
)
function i2cReset
void i2cReset ()
Macro Definition Documentation
define I2CDEV_DEFAULT_READ_TIMEOUT
#define I2CDEV_DEFAULT_READ_TIMEOUT 10
The documentation for this class was generated from the following file fw/rbcx-coprocessor/include/I2cController.hpp