Serial port 在处理中通过串行发送ctrl c

Serial port 在处理中通过串行发送ctrl c,serial-port,processing,uart,msp430,Serial Port,Processing,Uart,Msp430,我有一个微控制器(MSP430),它接受串行处理中的命令。我可以使用带有命令的文本输入框来编程。当我输入“adc 4”(从adc读取值)时,它会将值从adc流式输出。要停止字符串,MSP430需要CTRL+C,但我无法发送CTRL+C来工作 如何在处理中发送此字符串 port = new Serial(this, Serial.list()[9], 9600); String output = ""; void keyPressed() { if (key < 255) { outp

我有一个微控制器(MSP430),它接受串行处理中的命令。我可以使用带有命令的文本输入框来编程。当我输入“adc 4”(从adc读取值)时,它会将值从adc流式输出。要停止字符串,MSP430需要CTRL+C,但我无法发送CTRL+C来工作

如何在处理中发送此字符串

port = new Serial(this, Serial.list()[9], 9600);

String output = "";
void keyPressed() {
if (key < 255) {
  output += str(key);
  if (key == lf) {

    if (output.indexOf("ctrl")==0) {
      port.write(0x03);  //ctrl+c doesn't work
    }

    print("sending: " + output);
    port.write(output);
    port.write(0x0d);  //send CR
    output = "";
  }
}

// Process a line of text from the serial port.
void serialEvent(Serial p) {
  input = p.readStringUntil('\n');
  print("received: " + input);
}

// Draw the input and ouput buffers and a little help.
void draw() {
  background(0);
  fill(204, 102, 0);
  text("Type a line of text to send to the serial port:", 10, 20);
  fill(255, 255, 255);
  rect(10, 75, 480, 5);
  text(output, 10, 55);
  text(input, 10, 110);
}
port=new Serial(这是Serial.list()[9],9600);
字符串输出=”;
按下void键(){
如果(键<255){
输出+=str(键);
如果(键==lf){
if(output.indexOf(“ctrl”)==0){
port.write(0x03);//ctrl+c不起作用
}
打印(“发送:”+输出);
端口写入(输出);
port.write(0x0d);//发送CR
输出=”;
}
}
//从串行端口处理一行文本。
无效串行事件(串行p){
input=p.readStringUntil('\n');
打印(“接收:”+输入);
}
//绘制输入和输出缓冲区以及一些帮助。
作废提款(){
背景(0);
填充(204、102、0);
文本(“键入要发送到串行端口的文本行:”、10、20);
填充(255、255、255);
rect(10,75,480,5);
文本(输出,10,55);
文本(输入,10110);
}

我试图添加一个子句来检测是否在文本框中输入了CTRL,以及是否输入了CTRL以通过串行发送CTRL+C。处理似乎不会发送CTRL+C,也不会像使用coolTerm时那样中断msp430。

您得到了什么输出?是否看到“发送:CTRL”?您提供的是什么输入?将问题空间分成两半。首先,您必须决定发送一个control-C。其次,您必须发送它。以下哪项失败了?您好@DavidSchwartz,我正试图通过UART发送control-C,但似乎处理不会中断代码。我提供的输入是“ctrl+C”。它说“发送CTRL+C”。但是它似乎不发送CTRL+C来中断MSP430,这是在流式ADC值中间。您确定它期望一个控制C而不是RS232中断序列吗?我收到的命令行接口文档说“ADChans[ Time]。在MV中读取ADC;^ C要停止”,所以如果我键入“ADC 4”。“它将数据流回(例如,“Ch4=01C2”、“Ch4=01C3”),直到我在mac上按“Control+C”。但当我试图让处理发送“Control+C”时,它从不停止流,所以我认为处理不会发送控制C。