Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC32MM0064GPL028 – MPLAB Code Configuratorを使ってUART1でシリアル出力させてみる。 –

PIC32MM0064GPL028 – MPLAB Code Configuratorを使ってTimer1の割り込みでLチカさせる。 –」の続き。

System Module は初期設定のままだ。
pic32mm0064gpl028_uart1_161025_01
pic32mm0064gpl028_uart1_161025_02
動作確認のLチカ用のピン設定をするが、もし隠れていたらこうやって窓を表示させることができる()。
pic32mm0064gpl028_uart1_161025_03
設定したいピンを右クリックして、ここではoutputに設定する。
pic32mm0064gpl028_uart1_161025_04
アナログ機能も持っているピンの場合は、チェックを外しておく。
pic32mm0064gpl028_uart1_161025_05
ピンの設定については「MPLAB Code Configurator – ピン関連の設定をする窓 –」にまとめた。
Lチカとシリアル送信のタイミングはTimer1で取ろうと思うので、以下のように用意する。
pic32mm0064gpl028_uart1_161025_06
今回の主題であるUART1も設定する。
こちらは初期設定のままだ。
pic32mm0064gpl028_uart1_161025_07
この段階でシリアル通信に使うピンについてもPin Managerに表示される。
使うピンは下のようにカギをかけた状態にする。

これを参考に、U1RX(26ピン)をUSBシリアル変換モジュールのTXに、U1TX(25ピン)をUSBシリアル変換モジュールのRXに接続する。
TX – RX をそれぞれつなぐということだ。

Generateする。
pic32mm0064gpl028_uart1_161025_08
Lチカ関連は以前にも書いたので省略する。
自動生成される uart1.c を眺めてみると、出力動作はこんな感じでやるらしいと分かる。
pic32mm0064gpl028_uart1_161025_09
ここで初めてReference Manualに目を通すと、

UxSTAbits.UTXBF: Transmit Buffer Full Status bit (read-only)
1 = Transmit buffer is full
0 = Transmit buffer is not full, at least one more character can be written

UxTXREG: UARTx Transmit Register
This register provides the data to be transmitted.

などど書かれている。
とりあえずは、この関数を直接呼んでみる。
Timer1 の割り込み発生時に呼ばれる TMR1_CallBack(); 内に以下のように書いた。
pic32mm0064gpl028_uart1_161025_10
赤枠内はいわゆるLチカだ。
青枠は「SAHARA」の6文字のアスキー・コードと、CRとLFのコードをUART1に送っている。
コンパイルして実行すると、USBシリアル変換モジュールを経て、PC上のターミナル・ソフトにちゃんと表示される。
pic32mm0064gpl028_uart1_161025_11
上の設定のままなら1秒間隔で繰り返し「SAHARA」が表示されるわけだ。
相変わらず、拍子抜けするくらいに簡単だ。
下に示したような文字列を表示する関数を用意してみる。
pic32mm0064gpl028_uart1_161025_12
この場合は下の赤線のようなコードを追加すれば、文字列を送信することが出来、若干実用的にはなる。

キー入力した文字のコードに1加えて返すだけの、よくあるシンプルな例なら、自動で生成される main.c の中の main() 内のwhileループの中に、
UART1_Write(UART1_Read()+1);
と書くだけでいい。
pic32mm0064gpl028_uart1_161025_13

なお、文字を送る場合で速度を変えてみたら、MCCで設定可能な最高速度の460800bpsでも文字化けせずに送れた。

PIC32MM0064GPL028関連記事一覧


行方不明の窓を出す方法に関しては、MCCのバージョンが変わると設定方法が少し変わったりする。
v3.65では以下のものが役立ちそう。

このエントリーをはてなブックマークに追加

Posted under: PIC32MM0064GPL028


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.