Esempio n. 1
0
void ssd1306_print(const char * string, uint16_t tcolor, uint16_t bcolor, uint8_t tsize)
{
	const char * p = string;
	int n = strlen(string);

	while (*p != 0 && n-->0)
	{
		ssd1306_write( (uint8_t) *p++, tcolor, bcolor, tsize);
	}

}
Esempio n. 2
0
void ssd1306_init(void)
{
	oled_spi_dev.port = 1;
	oled_spi_dev.config.mode = HAL_SPI_MODE_MASTER;
	oled_spi_dev.config.freq = 6000000;
	hal_spi_init(&oled_spi_dev);

	//config reset and ds pin
	gpio_oled_reset.port = 8; //PA8
	gpio_oled_reset.config = OUTPUT_PUSH_PULL;
	hal_gpio_init(&gpio_oled_reset);
	hal_gpio_output_high(&gpio_oled_reset);

	gpio_oled_cs.port = 22; //PA22
	gpio_oled_cs.config = OUTPUT_PUSH_PULL;
	hal_gpio_init(&gpio_oled_cs);
	hal_gpio_output_high(&gpio_oled_cs);
	aos_msleep(1);
	hal_gpio_output_low(&gpio_oled_cs);

	gpio_oled_ds.port = 20; //PA20
	gpio_oled_ds.config = OUTPUT_PUSH_PULL;
	hal_gpio_init(&gpio_oled_ds);
	hal_gpio_output_high(&gpio_oled_ds);

	aos_msleep(1);
	hal_gpio_output_low(&gpio_oled_reset);
	aos_msleep(1);
	hal_gpio_output_high(&gpio_oled_reset);

	//config oled
	ssd1306_write(SSD1306_DISPLAYOFF, SSD1306_CMD);
	ssd1306_write(SSD1306_SETDISPLAYCLOCKDIV, SSD1306_CMD);
	ssd1306_write(80, SSD1306_CMD);
	ssd1306_write(SSD1306_SETMULTIPLEX, SSD1306_CMD);
	ssd1306_write(0x3F, SSD1306_CMD);
	ssd1306_write(SSD1306_SETDISPLAYOFFSET, SSD1306_CMD);
	ssd1306_write(0x00, SSD1306_CMD);
	ssd1306_write(SSD1306_SETSTARTLINE, SSD1306_CMD);
	ssd1306_write(SSD1306_ENABLE_CHARGE_PUMP, SSD1306_CMD);
	ssd1306_write(0x14, SSD1306_CMD);
	ssd1306_write(SSD1306_MEMORYMODE, SSD1306_CMD);
	ssd1306_write(0x02, SSD1306_CMD);
	ssd1306_write(0xA1, SSD1306_CMD);
	ssd1306_write(SSD1306_COMSCANINC, SSD1306_CMD);
	ssd1306_write(SSD1306_SETCOMPINS, SSD1306_CMD);
	ssd1306_write(0X12, SSD1306_CMD);
	ssd1306_write(SSD1306_SETCONTRAST, SSD1306_CMD);
	ssd1306_write(0x1F, SSD1306_CMD); //set brightness
	ssd1306_write(SSD1306_SETPRECHARGE, SSD1306_CMD);
	ssd1306_write(0xF1, SSD1306_CMD);
	ssd1306_write(SSD1306_SETVCOMDETECT, SSD1306_CMD);
	ssd1306_write(0x30, SSD1306_CMD);
	ssd1306_write(SSD1306_DISPLAYALLON_RESUME, SSD1306_CMD);
	ssd1306_write(SSD1306_NORMALDISPLAY, SSD1306_CMD);
	ssd1306_write(SSD1306_DISPLAYON, SSD1306_CMD);

	return 0;
}
Esempio n. 3
0
void ssd1306_set_brightness(uint8_t brightness)
{
	ssd1306_write(SSD1306_SETCONTRAST, SSD1306_CMD);
	ssd1306_write(brightness, SSD1306_CMD); //set brightness
}