Hsieh JenYun
/
446STM32_PC_I2CS
V1
Fork of 446STM32_Print_PC_I2CS by
Diff: main.cpp
- Revision:
- 0:8be7c91879df
- Child:
- 1:51fb8c086992
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Nov 01 07:19:20 2017 +0000 @@ -0,0 +1,43 @@ +#include "mbed.h" + +DigitalOut myled(LED1); +Serial pc(USBTX, USBRX); +I2CSlave slave(PC_9, PA_8); + +int main() { + char buffer[128]; + char all_buf[]="i'm here!"; + char buf[20]; + char msg[] = "Hi Master!"; + slave.address(0xA0); + + while(1){ + if(pc.readable()) { + slave.stop(); + pc.gets(buffer, 128); + pc.printf("I got '%s'\n", buffer); + } + int i = slave.receive(); + switch (i) { + case I2CSlave::ReadAddressed: + if(!slave.write(msg, strlen(msg) + 1)) // Includes null char + slave.stop(); + printf("ReadAddressed\n"); + //slave.stop(); + break; + case I2CSlave::WriteGeneral: + if(!slave.write(all_buf, strlen(all_buf) + 1)) // Includes null char + slave.stop(); + printf("i've received the command...\n"); + break; + case I2CSlave::WriteAddressed: + slave.read(buf, 20); + //slave.stop(); + printf("master write to A: %s\n", buf); + break; + } + for(int i = 0; i < 10; i++) { + buf[i] = 0; // Clear buffer + } + } +} \ No newline at end of file