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!」が表示されます。



