NXP JN516X (TWELITE) をプログラミングする(UART)

JN516XのUARTは一番重要なペリフェラルだ。デバイスへの書き込みはUART経由で行ってるしUART経由で文字列出力くらいできないとデバッグはウルトラ大変である。

SDK-APIのままだと少し使いづらいのでもう少し簡単に使えるようにライブラリを作ってみた。送受信とも割り込み処理されるのでユーザー側で割り込み処理を用意する必要はない。

UART0とUART1の2つをサポートし、全機能を網羅しつつArduino風に使えるようにしている。

Uart Serial0;
Uart Serial1;

上記2つのグローバル変数経由で利用でき、利用前にSerialX.begin()を呼び出すだけだ。

ボーレートは4800-4Mbpsまでの任意の速度が指定可能で規定は115200bps/8bit/stop1/noparityである。

【Uartライブラリ】

※未説明の”system.h”をインクルードしていることに注意!

【Debugライブラリ】

Debugライブラリは、SDKに含まれる

“Components/Utilities/Source/printf.c”

を改良したものをクラス化してみた。

のような感じで使うことができTerminalソフト或いはBeyondStudioのTerminalペインに出力することができるので非常に便利だ。printfの書式は一般的な仕様と同じ。

次回は、Uartライブラリでインクルードされているシステムライブラリの予定。

【関連投稿】
NXP JN516X (TWELITE) をプログラミングする(開発環境の構築)
NXP JN516X (TWELITE) をプログラミングする(メイン・ルーチン)
NXP JN516X (TWELITE) をプログラミングする(TICKTIMER)
NXP JN516X (TWELITE) をプログラミングする(UART)
NXP JN516X (TWELITE) をプログラミングする(SYSTEM)
NXP JN516X (TWELITE) をプログラミングする(GPIO)
NXP JN516X (TWELITE) をプログラミングする(TIMER)
NXP JN516X (TWELITE) をプログラミングする(ALARM)
NXP JN516X (TWELITE) をプログラミングする(WAKETIMER)
NXP JN516X (TWELITE) をプログラミングする(WATCHDOG)
NXP JN516X (TWELITE) をプログラミングする(I2C)
NXP JN516X (TWELITE) をプログラミングする(SPI)
NXP JN516X (TWELITE) をプログラミングする(ADC)
NXP JN516X (TWELITE) をプログラミングする(COMPARATOR)
NXP JN516X (TWELITE) をプログラミングする(CLOCK)
NXP JN516X (TWELITE) をプログラミングする(BROWNOUT)
NXP JN516X (TWELITE) をプログラミングする(PULSCOUNTER)
NXP JN516X (TWELITE) をプログラミングする(INFRARED)
NXP JN516X (TWELITE) をプログラミングする(RANDOM-GENERATOR)
NXP JN516X (TWELITE) をプログラミングする(FLASH)
NXP JN516X (TWELITE) をプログラミングする(EEPROM)
NXP JN516X (TWELITE) をプログラミングする(WPAN)
NXP JN516X (TWELITE) をプログラミングする(Eclipse-CDT+MWSTAGE)
NXP JN516X (TWELITE) をプログラミングする(乗算と除算)
NXP JN516X (TWELITE) をプログラミングする(マルチタスク)
NXP JN516X (TWELITE) をプログラミングする(フラッシュ・プログラマー)
NXP JN516X (TWELITE) をプログラミングする(OTA UPDATE)
NXP JN516X (TWELITE) をプログラミングする(TWELITE CUE/MC3630)
NXP JN516X (TWELITE) をプログラミングする(LED)
NXP JN516X (TWELITE) をプログラミングする(AES)
NXP JN516X (TWELITE) をプログラミングする(Downloads)