Cypress Semiconductorの「IoTセンス拡張キット(CY8CKIT-028-SENSE)」に実装されているOLED Display (SSD1306)のプログラムを、infineonのModusToolboxを使って開発します。「infineonのModusToolboxの設定」で開発環境を構築しました。OLED Displayのプログラムについては、「OLED Display (SSD1306)」を参考にしました。

OLEDプログラムの作成準備

次の手順でModusToolboxを使ってOLEDプログラムを開発します。

  1. Quick PanelからNew Applicationを選択して、Project Creatorを起動します。
  2. Project Creator で「PSoC™ 6 BSPs 」より「PSoC 62S2-43012 」を選択し、「Next」ボタンをクリックします。
  3. 次のようにサンプルコード「Getting Started」から「Empty PSoC6 App」を選択して、Application Nameに「OLEDTest」を設定して 「Create」ボタンをクリックします。
  4. Quick PanelからLibrary Managerを選択して、次のようにIoTセンス拡張キット(CY8CKIT-028-SENSE)ライブラリを追加します。
  5. Quick PanelからLibrary Managerを選択して、次のように 「emWin」 ライブラリを追加します。
  6. 「Makefile」ファイルをエディタで開き、 COMPONENTS listに次の構文を追加し、「EMWIN_NOSNTS」 emWin ライブラリオプションを可能とします
  7. 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!」が表示されます。