TA的每日心情 | 开心 2020-2-14 12:16 |
---|
签到天数: 827 天 连续签到: 1 天 [LV.10]以坛为家III
|
接上一篇帖子
Atmel评估套件专区-【WINC1500-XSTK WiFi】LED0测试-爱板网论坛 - 电子工程师学习交流园地 https://www.cirmall.com/bbs/thread-48015-1-1.html
使用SSD1306相关例程“SSD1306_EXAMPLE1”,程序如下
部分管脚定义- #define SSD1306_SPI SERCOM2
- #define SSD1306_CLOCK_SPEED 1000000
- #define SSD1306_DC_PIN PIN_PB24
- #define SSD1306_CS_PIN PIN_PB27
- #define SSD1306_RES_PIN PIN_PA17
复制代码- #define SSD1306_CLOCK_SPEED 1000000UL
- #define SSD1306_DISPLAY_CONTRAST_MAX 40
- #define SSD1306_DISPLAY_CONTRAST_MIN 30
复制代码 当复位引脚低电平时,复位OLED- static inline void ssd1306_hard_reset(void)
- {
- uint32_t delay_10us = 10 * (system_gclk_gen_get_hz(0)/1000000);
- port_pin_set_output_level(SSD1306_RES_PIN, false);
- delay_cycles(delay_10us); // At lest 10us
- port_pin_set_output_level(SSD1306_RES_PIN, true);
- delay_cycles(delay_10us); // At lest 10us
- }
复制代码 页地址- static inline void ssd1306_set_page_address(uint8_t address)
- {
- // Make sure that the address is 4 bits (only 8 pages)
- address &= 0x0F;
- ssd1306_write_command(SSD1306_CMD_SET_PAGE_START_ADDRESS(address));
- }
复制代码 行地址- static inline void ssd1306_set_column_address(uint8_t address)
- {
- // Make sure the address is 7 bits
- address &= 0x7F;
- ssd1306_write_command(SSD1306_CMD_COL_ADD_SET_MSB(address >> 4));
- ssd1306_write_command(SSD1306_CMD_COL_ADD_SET_LSB(address & 0x0F));
- }
复制代码 开始显示地址- static inline void ssd1306_set_display_start_line_address(uint8_t address)
- {
- // Make sure address is 6 bits
- address &= 0x3F;
- ssd1306_write_command(SSD1306_CMD_SET_DISPLAY_START_LINE(address));
- }
复制代码 写命令- void ssd1306_write_command(uint8_t command)
- {
- spi_select_slave(&ssd1306_master, &ssd1306_slave, true);
- port_pin_set_output_level(SSD1306_DC_PIN, false);
- spi_write_buffer_wait(&ssd1306_master, &command, 1);
- spi_select_slave(&ssd1306_master, &ssd1306_slave, false);
复制代码 写数据- void ssd1306_write_data(uint8_t data)
- {
- spi_select_slave(&ssd1306_master, &ssd1306_slave, true);
- port_pin_set_output_level(SSD1306_DC_PIN, true);
- spi_write_buffer_wait(&ssd1306_master, &data, 1);
- spi_select_slave(&ssd1306_master, &ssd1306_slave, false);
- }
复制代码 最终显示图片
白条横屏,正在调试中
|
|