#include #include "pico/stdlib.h" #include "hardware/i2c.h" #define I2C_SCL PICO_DEFAULT_I2C_SCL_PIN #define I2C_SDA PICO_DEFAULT_I2C_SDA_PIN #define SSD1306_ADDR 0x3C #define SSD1306_CB_CONTINUE 0x80 #define SSD1306_SET_DISP_OFF 0xAE // Sleepモードに #define SSD1306_SET_DISP_ON 0xAF // Normalモードに int main() { stdio_init_all(); // I2C0を400kbpsで初期化 i2c_init(i2c0, 400*1000); // ピンをI2Cに割り当て gpio_set_function(I2C_SDA, GPIO_FUNC_I2C); gpio_set_function(I2C_SCL, GPIO_FUNC_I2C); gpio_disable_pulls(I2C_SDA); gpio_disable_pulls(I2C_SCL); // 外付けでプルアップした場合次の2行をコメントアウト gpio_pull_up(I2C_SDA); gpio_pull_up(I2C_SCL); uint8_t cmd_buf[2] = {0x80, SSD1306_SET_DISP_OFF}; int ret; ret = i2c_write_blocking(i2c0, SSD1306_ADDR, cmd_buf, sizeof(cmd_buf),false ); if(ret != sizeof(cmd_buf)) { printf("I2C Error\n"); } sleep_ms(2000); cmd_buf[1] = SSD1306_SET_DISP_ON; ret = i2c_write_blocking(i2c0, SSD1306_ADDR, cmd_buf, sizeof(cmd_buf),false ); if(ret != sizeof(cmd_buf)) { printf("I2C Error\n"); } while (true) { tight_loop_contents(); } }