Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
6 years, 11 months ago.
I2c communication between STM32F401re can not be performed
I made code, but it does not work.
I would like to let you know if there is something wrong. Also, please tell me if necessary initialization processing, if there are any points to watch out for.
- Master
#include "mbed.h"
const char addr_arduino = 0x48 << 1; // LM75 address
Serial pc(USBTX, USBRX);
I2C i2c(I2C_SDA, I2C_SCL);
DigitalOut myled(LED1);
int main()
{
char data[8];
long data_write[2];
/* Configure the Temperature sensor device STLM75:
- Thermostat mode Interrupt
- Fault tolerance: 0
*/
while(1) {
data_write[0] = 1000.0*1000;
data_write[1] = 2000.0*1000;
//data = 'a'
data[0] = char((data_write[0] ) & 0xFF);
data[1] = char((data_write[0] >> 8) & 0xFF);
data[2] = char((data_write[0] >> 16) & 0xFF);
data[3] = char((data_write[0] >> 24) & 0xFF);
data[4] = char((data_write[1] ) & 0xFF);
data[5] = char((data_write[1] >> 8) & 0xFF);
data[6] = char((data_write[1] >> 16) & 0xFF);
data[7] = char((data_write[1] >> 24) & 0xFF);
int status = i2c.write(addr_arduino, data, 8);
wait(2);
if (status != 0) { // Error
myled = !myled;
wait(0.2);
}
}
}
____________________
- Slave
#include <mbed.h>
I2CSlave slave(I2C_SDA, I2C_SCL);
int main()
{
char buf[10];
char msg[] = "Slave!";
slave.address(0x48 << 1);
while (1) {
int i = slave.receive();
switch (i) {
case I2CSlave::ReadAddressed:
slave.write(msg, strlen(msg) + 1); // Includes null char
pc.printf("ReadAddressed");
break;
case I2CSlave::WriteGeneral:
slave.read(buf, 8);
pc.printf("WriteGeneral");
break;
case I2CSlave::WriteAddressed:
slave.read(buf, 8);
pc.printf("WriteAddressed");
break;
}
for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer
}
}
1 Answer
6 years, 11 months ago.
Hello.
For i2c master test with:
const char addr_arduino = 0x48; // LM75 address (7 bit address)
and
for i2c slave use:
slave.address(0x48);
Please test again.
Dear Mizuguchi-san - we have reformatted your post so it is more legible. In the future, please use the code tags as shown in the "Editing Tips".
posted by Ralph Fulchiero 05 Nov 2018