c - 我想在 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()
。
解决方案
推荐阅读
- python - Python:从 CSV 构建分层 JSON
- python - Python在列表列表中连接连续的真值
- python-3.x - 在笔记本(.ipynb 文件)中粘贴双重粘贴
- javascript - ES6 动态地为 HTML 元素分配一个类方法
- cmake - cmake 获取目标的所有定义,包括来自全局范围、目录范围和依赖目标的定义
- python - 消息:没有这样的元素:无法找到元素
- assembly - 如何使用 Qemu 查看内存中的内容
- promise - 在 javascript 中使用 fetch 的 Promise 对象
- java - 递归查找数组的 k 个元素的所有可能组合,其中 k 是数组的最后一个元素
- loops - 如何在使用flowAction Control在循环中运行相同线程时在jmeter中添加延迟,以便在最后一个循环之后没有延迟