PIC16F18326のシリアル通信のテストをします。
環境は、MPLAB X(v6.15) XC8(v2.45) MCC(v5.3.7)です。
テストする回路です。パソコンとの通信には、秋月電子のUSBシリアル変換モジュールFT-234を使います。電源もこのモジュールから供給します。
MPLAB Xでprojectを作成し、MCCを立ち上げ、各種設定をします。
まず、system moduleでクロックの設定をします。下のように設定し、クロック4MHzとしました。
シリアル通信を行うために、EUSARTモジュールを導入します。
設定は特に行わず、デフォルトのままです。通信速度は9600bpsです。
pin moduleです。特に設定はしません。RC4がTXにRC5がRXピンになります。
テストプログラムです。
---------------------------------------------------------------------
/*
* PIC16F18326 MCC Serial com. test
* 2024.01.18
* JH7UBC Keiji Hata
*/
#include "mcc_generated_files/mcc.h"
//1文字送信
void putch(char ch)
{
EUSART_Write(ch);
}
void main(void)
{
// initialize the device
SYSTEM_Initialize();
uint8_t data;
int i = 0;
while (1)
{
data = EUSART_Read();
printf("%3d ",i);
EUSART_Write(data);
printf("\r\n");
i++;
}
}
---------------------------------------------------------------------
putch()関数を定義しましたので、printf()関数を使うことができます。
今回、C standardがC99のままでもエラーは出ませんでした。
ブレッドボードです。
パソコンでTeraTermを立ち上げて、9600bpsで通信を行います。
0からカウントアップされる数字が表示され、キーボードから入力された文字が表示されます。