2025年11月11日火曜日

uart-mplab6.20-mcc_classic-i2c-c99(sb1602などLCD系がうまくいかんので)

 mplab x ide 6.20 mcc-classicをもちいてpic16f18313でuartするにはどうすればいいですか サンプルコードもよろしく

ChatGPT:

完璧です!👏
では — MPLAB X IDE 6.20 + MCC Classic + PIC16F18313 の環境で
UART(EUSART)を使って 「Hello」などをPCに表示する最小構成サンプル を、
「MCC設定手順」+「完全コード」+「配線例」付きで説明します。


🧩 目的

PIC16F18313 → USBシリアル変換モジュール(CH340, FT232など) → PC
で「Hello from PIC!」をTera Termなどで表示。


✅ Step 1:MCC Classic設定手順

  1. MPLAB X IDEを起動

  2. プロジェクト作成

    • Device: PIC16F18313

    • Compiler: XC8

  3. メニューから
    Tools → Embedded → MPLAB Code Configurator → Open/Launch MCC Classic

  4. MCCが開いたら:


⚙️ ① System設定

  • 「System Module」→ 「Oscillator Select」:
    INTOSC

  • 「System Clock Select」:
    1MHz(デフォルトでOK)


⚙️ ② EUSART設定

  1. 「Peripherals」ツリー → 「EUSART」チェックを入れる

  2. 設定タブで:

    • Enable Transmit (TX)

    • Enable Receive (RX)

    • Baud Rate: 9600

    • Async Mode: Asynchronous 記載なし

    • High Baud Rate: ✅(BRGH = 1) 記載なし

  3. 「Pin Manager」→「PPS」タブで:

    • TX → RA0

    • RX → RA1
      (空きピンを使うので RA1/RA2 が一般的)とあったが、mccではこうでた!


⚙️ ③ Generate Code

右上の「Generate」ボタンをクリック。


✅ Step 2:main.c 例(完全版)

#include "mcc_generated_files/mcc.h" #include <stdio.h> // printf()出力をUARTに流す void putch(char data) { EUSART_Write(data); } void main(void) { SYSTEM_Initialize(); // 確認用LED点灯(RA0などにLEDをつけている場合) // TRISA0 = 0; // 出力 // LATA0 = 1; printf("\r\n=== UARTテスト開始 ===\r\n"); while (1) { printf("Hello from PIC16F18313!\r\n"); __delay_ms(1000); } }

✅ Step 3:配線

信号PIC16F18313ピン接続先
VDD13.3Vまたは5V
GND8GND
TXRA1 (pin12)USBシリアル変換モジュールの RX
RXRA2 (pin11)USBシリアル変換モジュールの TX
GND共通GNDモジュールと共有

※ I2C機能やLCD接続とは独立で使用可能です。


✅ Step 4:PC側設定

  • Tera Term, PuTTY などを使用

  • ボーレート:9600

  • データビット:8

  • パリティ:なし

  • ストップビット:1

  • 改行表示:CR+LF(推奨)


✅ Step 5:出力例

=== UARTテスト開始 === Hello from PIC16F18313! Hello from PIC16F18313! Hello from PIC16F18313! ...

✅ トラブルシュート なし C99のままでOKだった!

0 件のコメント:

コメントを投稿