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 件のコメント:

コメントを投稿

回転軸をスムーズに動かす工夫

回転軸をスムーズに動かしたいことがあります。右の図は把手です。つまみを持って回転させる機構です。  この時に必要なのは つまみがスムーズに動く ことです。 3D設計  この機構を次のように設計しました。  左図のように、ハンドルにはφ6.0mmの穴が空いています。押さえの差し込ま...