Oct
14

如何在 Arduino 中从串口读取字符串

10/14/2023 04:30 PM 经过 Admin Iot


在本快速教程中,我们将研究如何从 Arduino 串行监视器或其他串行终端读取用户输入字符串。 快速的步骤。

  • 定义“serial_buffer_len”,这将是您期望的最大用户输入。
  • 设置所需的串行波特率。
  • 使用“Serial.available()”检查我们是否有可用的串行数据。
  • 调用用户定义的“read_serial_input()”函数来加载“serial_buffer”。
//Serial buffer
#define serial_buffer_len  80
char serial_buffer[serial_buffer_len];
String user_input = "";

void setup() { 
	Serial.begin(9600);
}

void loop() {
	if (Serial.available() > 0){
		if (read_serial_input(Serial.read(), serial_buffer, serial_buffer_len) > 0) {
			user_input = String(serial_buffer);
		}
		Serial.println("serial user input:" +user_input);	
	}
}

// funtion to read user serial input
int read_serial_input(int read_ch, char *buffer, int len) {
    static int pos = 0;  
    int rpos;   
    if (read_ch > 0) {
        switch (read_ch) {
            case '\r': // Ignore CR
                break;
            case '\n': // Return on new-line
                rpos = pos;
                pos = 0;  // Reset position index ready for next time
                return rpos;
            default:
                if (pos < len-1) {
                    buffer[pos++] = read_ch;
                    buffer[pos] = 0;
                }
        }
    }
    return 0;
}

上传示例代码后,打开串行监视器并输入类似 hello world 的内容,然后您将看到它打印在串行监视器中。如果您想输入用户的字符串并对其执行操作,这是非常有用的代码片段。


你的想法

搜索
赞助
密码观察
跟着我们
公告

添加了新工具:SVG 缩放尺寸计算器

赞助