mbed

如何在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();

转载于:https://www.cnblogs.com/ronnielee/p/10019298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值