首页 > 解决方案 > 我想在 MBED 中使用 RX_interrupt 获取字符串

问题描述

我正在尝试使用 MBED 编写代码,但存在一些问题。

问题是我想获得“字符数组”。如果我将“abcde”发送到 MBED 板,板将得到“abcde”并做一些事情。

这是我的代码。

#include <mbed.h>

char message[200];

void Rx_interrupt();

int i;

Serial pc(PA_2, PA_3);

int main() {
   pc.baud(115200);
   pc.attach(&Rx_interrupt, Serial::RxIrq);
   while (1) {
   }
   return 0;
}

void Rx_interrupt() {
    char a1[6] = "abcde";

    memset(message, 0, sizeof(message));
    i = 0;
    while (pc.readable()) {
        message[i] = pc.getc();
        i++;
    }

    if (!strcmp(a1, message)) {
        pc.printf(message);
    }
    else {
        pc.printf("FAIL");
    }
}

如果我发送“abcde”,板应该打印“abcde”。这是我的目的。

但是黑板上只打印了一次“FAIL”。我应该怎么办?

我认为存在一些问题pc.getc()

标签: c

解决方案


推荐阅读