0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

STM32G031のArduinoでのUSARTシリアル通信(STM32G031J6M6)

Last updated at Posted at 2021-02-11

PA2出力が便利だよ

シリアルUSBには、次の物を使用した。

FT234X 超小型USBシリアル変換モジュール
[AE-FT234X]
通販コード M-08461
発売日 2014/10/07
メーカーカテゴリ 株式会社秋月電子通商

ST-LINKは、ぞくに言う中華ST-LINKを使用した

STM8/STM32ライタ [STLINKV2]
販売価格: 500円(税別)
参考在庫数 18点
数量:
●概要
●仕様・機能
ST-LINK V2互換ライタ、自動アップグレードサポート,STM32全シリーズSWD/STM8全シリーズSWIM対応、3.3V/5Vサポート、IDC 5Px2コネクタ、USBタイプAコネクタ、本体のみ、表記価格:1

1.TXとRXを接続
2.電源の接続
3.下記のソースコードを書き込む
4.コンパイル実行で表示されたら終了
5.おわり

そのた
3秒のウエートは、消さないこと、STM32G031がむだになるかも
リセットが有効でないとき(ソフトウェアリセット)は、3秒以内に
ST-LINKを接続する。(delay(3000);の事)

中華ST-LINKのリセットを有効にしたい場合は、次のリンク参考
https://denshikousakusenka.jimdofree.com/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89/stm32/st-link-v2-clone%E3%81%ABreset/

自分は、PB0リセット改造済み

STM32G031J6M6のオプションビットを設定しておく。
リセットが有効、シリアルブートが有効

xリセットオンリー(1)をテスト前に必ず確認しておく事、忘れると
書き込み出来なくなる。たまたま、シリアルブートオプションの設定が
生きていたので復活できた。
x>>現実的には、リセットの改造をしておかないとだめかも。<< 古い
3秒ウェートの位置が間違っていた、これで3秒ルールが使える 2/15
x場合によっては、ST-LINKから上手く書き込めなくなるので上級者用

中華ST-LINKのリセット改造済みかどうかでコンパイル以降の手順が異なる。

あなたは、リセット改造なしの場合
1.シリアル通信は、繋がず、コンパイル実行する。
2.ST-LINKを外しシリアル通信と3.3V電源(3.3VorGND)を接続する。
(本体マイコン、シリアル通信の電源の順に繋ぐ)
3.テストし終わったら、シリアル通信を外す。
5.ST-LINKを繋ぎ、3秒以内にST-LINKソフトで接続する
6.チップイレースをするといつも通り使える用になる。
7.おわり

あなたは、リセット改造済みの場合
xリセット端子は、接続しておく。ST-LINK(リセット)->G031(リセット)
1.シリアル端子は、繋がず、コンパイル実行する。
2.一旦、ST-LINKを外す。
3.シリアル通信のtx,rx,gndを繋ぐ。
4.ST-LINKを繋ぐ。
5.シリアル通信のUSBを繋ぐ。
 テラタームも立ち上げる
6.コンパイル実行する。
7.ハローワールドと表示され一文字エコーされる。テストする。
8.修正か゛あればリコンパイルする。
9.テストが終わったらシリアル端子USBを抜く
10.ST-LINKを抜く
11.おわり
xST-LINKやシリアル通信USBを抜いたり挿したりしていたらあさっての方向に
行ったのでなんとなくこの手順になった。テスト時にリセットの為にリコンパイルしている。

復活方法の参考
STM32G031J6M6で6GPIOを使用する。
https://qiita.com/caa45040/items/0e444df2e0a60e763718

STM32G031を使用した。液晶時計ができました。
STM32G031のArduinoでの時計,DS1307で時刻表示( AQM0802A i2c)(STM32G031J6M6)
https://qiita.com/caa45040/items/fee158b4d04a5139bae0

LPC1114のMbedでの時計,DS1307で時刻表示( AQM0802A i2c)(ハードはichigojam)
https://qiita.com/caa45040/items/5f0e7f0f3ebcae613ec2



//#define swdclk PA14 // 8pin
//#define swdio  PA13 // 7pin
//#define t_led1 PA12 // 6pin
//#define t_led2 PA11 // 5pin
//#define en     PA0  // 4pin
//#define in7    PB7  // 1pin

// tx PA14(PB6) 8PIN
// rx PC14(PB7) 1PIN

char u_key;      // 受信データを格納するchar型の変数
char ch_in_key() {

  // 受信データがあった時だけ、処理を行う
  while(!Serial.available()) {}     // 受信データがあるか?
  u_key = Serial.read();            // 1文字だけ読み込む

  return(u_key);
}

void setup() {
  // put your setup code here, to run once:

    //Serial.begin( 9600 ); //bug 
    
    delay(3000); //not Delete

    Serial.begin( 9600 ); // シリアル通信の速度を9600bpsにする。
    
    Serial.println("Hello World !");

} //setup

void loop() {
  // put your main code here, to run repeatedly:

  // ch_in_key()で一文字受信してSerial.printで一文字送信する。
  Serial.print( ch_in_key() );    //送受信

} //loop

sel_tx_9600_g031_1.jpg

sel_tx_9600_g031_2.jpg

sel_tx_9600_g031_3.jpg

sel_tx_9600_g031_4.jpg

sel_G031_t_1.jpg

sel_G031_t_2.jpg

sel_G031_t_3.jpg

USARTを有効化

h_con6.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?