有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用自定义java程序上载已编译的命令c程序

我有一个Java程序,它基于硬编码的命令进行操作。我希望有一个命令,它将接受一个字符串作为参数,然后使用下面的代码将该字符串转换为CPP文件(这对我来说是完美的)。下面的cpp代码中有一个函数,它接受一个名为printToLCD(boolean, String);的字符串,当编译并上传到我的arduino uno时,它将打印一个字符串并显示在我的16x2 lcd屏幕上

我想使用我的Java程序来更改LCD屏幕上的消息,但是我想使用这个函数

我的程序能够连接到Arduino并读取它的串行输入,但是我无法编译C代码并将其上传到Arduino。有没有人遇到过做类似事情的人?有没有人遇到过类似的项目

有人知道如何编译C代码,然后将编译后的结果上传到arduino吗? 我已经查看了ArduinoIDE的方法来完成这项工作,但我找不到它们在哪里编译代码。这是我点击按钮时产生的,然后结果存储在字符串中,然后字符串路径被上传到arduino吗

Arduino的C代码:

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

#define I2C_ADDR    0x3F // <<----- Add your address here.  Find it from I2C Scanner
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7
int n = 1;
LiquidCrystal_I2C   lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
void cls(){
  lcd.setCursor(0,0);
  lcd.print("                     "); 
  lcd.setCursor(0,1);
  lcd.print("                     "); 
  lcd.setCursor(0,2);
  lcd.print("                     "); 

}
void printToLCD(boolean setBacklight, char const textToPrint[]){
  lcd.home();
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  if(setBacklight){
    lcd.setBacklight(HIGH);
  } 
  else {
    lcd.setBacklight(LOW); 
  }
  int stringLength = strlen(textToPrint);
  if(stringLength <= 16 && stringLength > 0){
    lcd.setCursor(0,0);
    lcd.print(textToPrint); 
  } 
  else if(stringLength >= 17 && stringLength <= 32){
    char *key2 = (char*)malloc(16);
    int o = 0;
    for(int j = 0; j < (stringLength -16); j++){
      key2[j] = textToPrint[j+16]; 
      o = j;
    }
    for(int a = o; a < 17; a++){
      key2[a+1] = ' '; 
    }

    lcd.setCursor(0,0);
    lcd.print(textToPrint);
    lcd.setCursor(0,1);
    lcd.print(key2);
  } 
  else if(stringLength > 32){
    lcd.setCursor(0,0);
    lcd.print("Hey! You have to");
    lcd.setCursor(0,1);
    lcd.print("many characters!");
  }
}
void setup()
{
  lcd.begin (16,2); //  <<----- My LCD was 16x2
  // Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
  cls();
  printToLCD(true,"All hail our lord Google.");
}
void loop(){

}

共 (0) 个答案