Hsieh JenYun
/
446STM32_Print_PC_I2CS
V1
Fork of 446STM32_Print_PC_I2CS by
Revision 1:51fb8c086992, committed 2017-11-06
- Comitter:
- Tanakacool
- Date:
- Mon Nov 06 06:05:09 2017 +0000
- Parent:
- 0:8be7c91879df
- Commit message:
- I2CS
Changed in this revision
diff -r 8be7c91879df -r 51fb8c086992 main.cpp --- a/main.cpp Wed Nov 01 07:19:20 2017 +0000 +++ b/main.cpp Mon Nov 06 06:05:09 2017 +0000 @@ -1,43 +1,58 @@ -#include "mbed.h" - -DigitalOut myled(LED1); -Serial pc(USBTX, USBRX); +#include <mbed.h> + I2CSlave slave(PC_9, PA_8); - -int main() { +DigitalOut myled(LED1); +Thread thread; +Serial pc(USBTX, USBRX); + +void slave_thread(){ char buffer[128]; - char all_buf[]="i'm here!"; - char buf[20]; - char msg[] = "Hi Master!"; - slave.address(0xA0); - - while(1){ + while(true){ + Thread::signal_wait(1); + if(pc.readable()) { slave.stop(); pc.gets(buffer, 128); pc.printf("I got '%s'\n", buffer); + printf("get_state osStatus: %d\n",thread.get_state ()); } - int i = slave.receive(); - switch (i) { + } +} +int main() { + char all_buf[]="i'm here!"; + char buf[20]; + char msg[] = "Hi Master!, this is 0xA0 response"; + slave.address(0xA0); + thread.start(slave_thread); + while (1) { + int i = slave.receive(); + if(i==1||i==2||i==3){ + thread.signal_clr(0); + switch (i) { case I2CSlave::ReadAddressed: if(!slave.write(msg, strlen(msg) + 1)) // Includes null char slave.stop(); printf("ReadAddressed\n"); //slave.stop(); + thread.signal_set(1); 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"); + thread.signal_set(1); break; case I2CSlave::WriteAddressed: slave.read(buf, 20); - //slave.stop(); printf("master write to A: %s\n", buf); + thread.signal_set(1); break; } + }else{ + //thread.signal_set(1); + } for(int i = 0; i < 10; i++) { buf[i] = 0; // Clear buffer } - } + } } \ No newline at end of file
diff -r 8be7c91879df -r 51fb8c086992 mbed-os.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os.lib Mon Nov 06 06:05:09 2017 +0000 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-os/#c9e63f14085f5751ff5ead79a7c0382d50a813a2
diff -r 8be7c91879df -r 51fb8c086992 mbed.bld --- a/mbed.bld Wed Nov 01 07:19:20 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://mbed.org/users/mbed_official/code/mbed/builds/b484a57bc302 \ No newline at end of file