Cypress Semiconductorの「IoTセンス拡張キット(CY8CKIT-028-SENSE)」に実装されているOLED Display (SSD1306)のプログラムを、infineonのModusToolboxを使って開発します。「infineonのModusToolboxの設定」で開発環境を構築しました。OLED Displayのプログラムについては、「OLED Display (SSD1306)」を参考にしました。
OLEDプログラムの作成準備
次の手順でModusToolboxを使ってOLEDプログラムを開発します。
- Quick PanelからNew Applicationを選択して、Project Creatorを起動します。
- Project Creator で「PSoC™ 6 BSPs 」より「PSoC 62S2-43012 」を選択し、「Next」ボタンをクリックします。
- 次のようにサンプルコード「Getting Started」から「Empty PSoC6 App」を選択して、Application Nameに「OLEDTest」を設定して 「Create」ボタンをクリックします。
- Quick PanelからLibrary Managerを選択して、次のようにIoTセンス拡張キット(CY8CKIT-028-SENSE)ライブラリを追加します。
- Quick PanelからLibrary Managerを選択して、次のように 「emWin」 ライブラリを追加します。
- 「Makefile」ファイルをエディタで開き、 COMPONENTS listに次の構文を追加し、「EMWIN_NOSNTS」 emWin ライブラリオプションを可能とします
COMPONENTS+=EMWIN_NOSNTS
OLEDプログラムの作成
次のOLEDプログラム「OLEDTest」を作成します。OLED Display (SSD1306)への表示には「emWin」 ライブラリを使用しています。
OLEDTest/main.c
#include "cybsp.h" #include "mtb_ssd1306.h" #include "GUI.h" int main(void) { cy_rslt_t result; cyhal_i2c_t i2c_obj; /* Initialize the device and board peripherals */ result = cybsp_init(); CY_ASSERT(result == CY_RSLT_SUCCESS); /* Initialize the I2C to use with the OLED display */ result = cyhal_i2c_init(&i2c_obj, CYBSP_I2C_SDA, CYBSP_I2C_SCL, NULL); CY_ASSERT(result == CY_RSLT_SUCCESS); /* Initialize the OLED display */ result = mtb_ssd1306_init_i2c(&i2c_obj); CY_ASSERT(result == CY_RSLT_SUCCESS); __enable_irq(); GUI_Init(); GUI_DispString("Hello world!"); for(;;) { } }
OLEDプログラムの実行
次の手順で作成したOLEDプログラム「OLEDTest」をビルドしてPSoC 62S2 Wi-Fi BTパイオニアキットで実行します。
Quick Panelから「Build OLEDTest Application」をクリックしてBuild します。
Quick Panelから「OLEDTest Debug(KitProg3_MiniProg4)」をクリックして実行します。IoTセンス拡張キット(CY8CKIT-028-SENSE)」に実装されているOLED Display (SSD1306)に次のように「Hello world!」が表示されます。