如何在ARM-mbed中同时读写
mbed中的中断缺陷——通过rise或fall触发进入到其他函数后无法跳出该函数,博文末尾会有中断方式
#include "rtos.h"//加的库,直接编译然后在mbed报错中点击"Fix it",添加;或者添加库
Thread thread1;//外部声明,声明thread
void servo1_thread()
{
while (true)
{
Thread::signal_wait(0x001);
...
}
}
thread1.start(servo1_thread);
thread1.signal_set(0x001);
thread1.terminate( );
//read_thread, 单写一个read线程去读指令以避免读写冲突
void read_thread()
{
d = pc.getc();
}
void servo2_thread()
{
thread1.terminate( );
if(Ein == 1)//触发条件,例如光电门输出高电平
{
pc.printf("s");
wait(0.5);
}
thread1.start(read_thread);
}
void test()
{
led = !led;
pc.printf("test1");
}
Ein.rise(&test);
pc.printf("test2");
c = pc.getc();