| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Callbacks can be called after each read/write cycle or per byte
- Each I2C module can have different callbacks
- General call support also working
- Supports master and slave at same time. Also works with multimaster
Usage:
i2c_msg msg;
char buffer[255];
main()
{
i2c_slave_enable(I2C1, I2C_FAST_MODE | I2C_SLAVE_DUAL_ADDRESS | I2C_SLAVE_GENERAL_CALL | I2C_SLAVE_USE_RX_BUFFER); // init slave mode. Enables master too
i2c_slave_attach_recv_handler(I2C1, pmsg, funcrx); // attach receive handler
i2c_slave_attach_transmit_handler(I2C1, pmsg, functx); // attach transmit handler
i2c_slave_set_own_address(I2C1, 0x10); // set addresss 1
i2c_slave_set_own_address2(I2C1, 0x20); // set addresss 2
}
void funcrx(i2c_msg *msg)
{
printf("length is %d.\n", msg->length);
char return_data = msg0>data[0];
}
void functx(i2c_msg *dev)
{
msg->data[0] = 0x01;
msg->data[1] = 0x02;
msg->data[2] = 0x03;
msg->data[3] = 0x04;
msg->data[4] = 0x05;
msg->length = 5;
}
All code derived from datasheets and libmaple.
Signed-off-by:- Barry Carter <barry.carter@gmail.com>
|
|
|
|
|
|
|
|
| |
- Shut Doxygen up in various places
- Fix some genuine docs bugs
- Ignore sources we're not responsible for
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This won't work on F2, which at times has SDA and SCL on different
ports (e.g. I2C3 SDA on PC9, SCL on PA8). Add .sda_port and .scl_port
replacements, which are used when the now-deprecated .gpio_port is
null. Use them correctly everywhere, with some new i2c_private.h
helper functionality.
Sigh. The F1 I2C code tries too hard to guess what you wanted; it's
not porting well at all.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
|
|
This is necessary to add series-specific infrastructure to clean up
some F1-isms in <libmaple/i2c.h>'s inline functions.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
|