党国特派员 发表于 2015-7-31 09:34:23

char ch;
Serial pc(USBTX, USBRX); // tx, rx
if ( pc.readable() ) {
ch =pc.getc();
}

党国特派员 发表于 2015-7-31 09:43:11

void echouart()
{
    pc.putc(pc.getc());
}
//设置接收回调
pc.attach(&echouart,SerialBase::RxIrq);

党国特派员 发表于 2015-7-31 09:43:47

mbed设置中断都是通过 attach

JackieLaura 发表于 2015-7-31 10:14:00

用库方便多了。。。MBED看不到底层,要实现一些特殊功能,可能还需要自己用库去封装MBED驱动。。。

foxmail-364565 发表于 2015-7-31 13:54:06

本帖最后由 foxmail-364565 于 2015-7-31 13:55 编辑

党国特派员 发表于 2015-7-31 09:43
void echouart()
{
    pc.putc(pc.getc());
}
//设置接收回调
pc.attach(&echouart,SerialBase::RxIrq);

嗯,以前用8位的单片机时就是这样做的.

foxmail-364565 发表于 2015-7-31 13:54:42

JackieLaura 发表于 2015-7-31 10:14
用库方便多了。。。MBED看不到底层,要实现一些特殊功能,可能还需要自己用库去封装MBED驱动。。。 ...

是,这可能是最后的办法了

党国特派员 发表于 2015-8-1 13:47:44

mbed 思想很好。

jy04706985 发表于 2019-10-22 22:57:38


unsigned char Cnt = 0;
unsigned char UART_RXD;



Timeout UARTtimeout;



void UARTtimeoutFunc()
{
       
        pc.printf("length = %dUART Revice OK\r\n",Cnt);
       
        Cnt = 0;
       
}


void callback()
{
       
        char buf;

        UART_RXD = pc.getc();

       
        UARTtimeout.attach(&UARTtimeoutFunc, 0.010);

}


int main()
{
       
        //Thread msdTask(msd_task, NULL, osPriorityNormal, 1024 * 4);
        //pc.format(8,SerialBase::None,1);
        ////pc.baud(115200);
        timer.attach(&attime, 0.2);
        //event.fall(&trigger);
        set_time(1256729737);// Set RTC time to Wed, 28 Oct 2009 11:35:37
       Dac = 0.3;
       
        tri = 0.7;
        pc.attach(&callback);
       
    while(1)
                {
                                //pc.printf("length = %d\r\n",Cnt);
                                wait_ms(1000);
                               

                        //        pc.printf("Too hot! (%f)\r\n", temperature.read());
                                               
    }
}
页: 1 [2]
查看完整版本: 请教大家,使用Mbed库,串口如何接收一个字符串?