【解決方法】I2C を使用して LDC 画面と通信するにはどうすればよいですか?

プログラミングQA


おはよう、
私は自分の学校でプロジェクトを行っています。そのためには、LCD スクリーン 2×16 (I2C) と通信する必要があります。 私は CubeIDE ソフトウェアと NUCLEO-STM32F411RE 開発ボードを使用しています。 私はすでに自分のプログラムを持っています。エラーや警告はありません。 ただし、画面はオンで、何も表示されません。 私は最初にプルアップ抵抗を追加するようにアドバイスされました。 変更はありません。 プログラミングの問題ではないことを確認するために、カードに組み込まれている LED を点滅させます (LCD 画面に何かが表示された直後)。LED は期待どおりに点滅します。 最後の仮説は、液晶画面との通信不良です。 この仮説を無効にする方法、または無効にする方法を知っていますか? またはそれを解決しますか? それとも、これは別の問題だと思いますか?

このコードを使用して開始します。 STM32 と I2C LCD のインターフェース: HAL サンプルコードが含まれています[^]

ありがとう :)

私が試したこと:

lcd_init1();
  lcd_backlight(1); // Turn on backlight


  lcd_clear_display();
  lcd_home();


    char *text = "EmbeddedThere";
    char int_to_str[10];
    int count=0;

    while (1)
    {
  	  sprintf(int_to_str, "%d", count);
  	  lcd_clear();
  	  lcd_set_cursor(0, 0);
  	  lcd_write_string(text);
  	  lcd_set_cursor(1, 0);
  	  lcd_write_string(int_to_str);
  	  count++;

  	if((count>0)&&(count<10))
  	  	  {
  				HAL_GPIO_WritePin(GPIOA,LD2_Pin,1);
  				HAL_Delay(100);
  				HAL_GPIO_WritePin(GPIOA,LD2_Pin,0);
  				HAL_Delay(100);
  	  	  }

  	  memset(int_to_str, 0, sizeof(int_to_str));
  	  HAL_Delay(1500);

    }
  }

解決策 1

あなたがコードを見つけたサイトに戻って、そこで尋ねます.彼らは、プロセッサボードが何をどのように接続することを期待しているかを少なくともn=知っているでしょう.
彼らは、同じ LCD を使用していて、そのインターフェイス要件を十分に理解している可能性もあります。

一般的に言えば、ある特定のボードと特定の LCD 用に書かれたコードが、別のボードや別のディスプレイでそのまま動作することは期待できません。それらがどのように接続されているか、どのような「言語」を使用しているかの詳細を確認する必要があります。どちらも相手が話すことを期待しています! オートマチック車を運転することを学び、同じようにマニュアルを運転できると仮定することを考えてください…それは変更なしでは機能しません…

そして、これは「一般的なソフトウェア」サイトです。コードを見つけたサイトなど、より具体的な人々と話をする必要があります。 幸運を!

解決策 2

まず、使用しているハードウェア専用のフォーラムで質問することをお勧めします。 STコミュニティ[^].

次に、LCD を接続したピン、それがどの LCD であるか、その要件は何かについて言及していません。投稿したコードには、LCD モジュールのどのピンが何のためにあるのかをコードに伝える場所を示すものは何もありません。 .

それがなければ、LCD と話していることにはなりません。 あなたはただデータを何も投げていません。

コメント

タイトルとURLをコピーしました