2026年2月24日火曜日

CH32V003マイコン4 シリアル通信機能(デバック機能)

  マイコンのプログラミングを行い、デバッグするときに内部の変数などの状態が知りたくなります。

 設計した回路図(右図)を見ると、シリアル通信用の端子「TX(送信)」を外部に接続できるようにしています。

 この端子をUSB-シリアル変換用のケーブルやボードに接続すると、PC側で受信して表示できます。

 例えば、秋月電子通商様の「USBシリアル変換モジュール」などがあります。

パソコンとの接続

 シリアルポートをパソコンに接続するときには、右図のようにマイコンESP①の「TX」をマイコンESP②の「RX」に接続します。(同じ記号の端子同士ではありません)
 この他に、信号グランドもお互いに接続します。
 この接続を「クロス接続」と言います。
 上側がシリアル変換モジュールです。わかりにくいのですが、UIAPduinoボードのUSBコネクタの下につながっています。
 UIAPduinoボードの「TX」と「GND」の2本をジャンバーで接続しています。




 プログラム例を示します。
#define SW1 9
#define SW2 7

void setup() {
  // RESET button シームレススイッチ
  if (FLASH->STATR & (1 << 14)) NVIC_SystemReset();
  SystemReset_StartMode(Start_Mode_BOOT);
  pinMode(PD4, OUTPUT);

  Serial.begin(9600);
  pinMode(SW1, INPUT_PULLUP);
  pinMode(SW2, INPUT_PULLUP);
  Serial.println("start.");
}
int count=0;
void loop() {
  if( digitalRead(SW1)==0){
    Serial.print("SW1 on: ");
    count++;
    Serial.println(count);
  }
  if( digitalRead(SW2)==0){
    Serial.print("SW2 on: ");
    count++;
    Serial.println(count);
  }
}
 スイッチSW1、SW2を押すと、パソコン側のシリアルモニタにメッセージが送信されます。

 変数countをカウントしているため、表示される数値が増えていることが分かります。
 この「Serial.print」関数を使うと、内部の変数の値などを表示して、デバッグすることができます。







0 件のコメント:

コメントを投稿

LEDマトリックス表示装置の設計・製作 9(画像表示)

  LEDマトリックスに画像を表示させるには、いろいろな画像形式を知る必要があります。現在、よく使われるJPG形式やPNG形式は圧縮処理されて保存されています。これに対して、BMP形式やTIFF形式は非圧縮形式で、画像データがそのまま保存されています。このため、ファイルは大きくな...