查看: 2184|回复: 0

【WINC1500-XSTK WiFi】OLED显示白条

[复制链接]
  • TA的每日心情
    开心
    2020-2-14 12:16
  • 签到天数: 827 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2016-6-26 10:21:35 | 显示全部楼层 |阅读模式
    分享到:
    接上一篇帖子
    Atmel评估套件专区-【WINC1500-XSTK WiFi】LED0测试-爱板网论坛 - 电子工程师学习交流园地 https://www.cirmall.com/bbs/thread-48015-1-1.html
    使用SSD1306相关例程“SSD1306_EXAMPLE1”,程序如下
    部分管脚定义
    1. #define SSD1306_SPI           SERCOM2

    2.          #define SSD1306_CLOCK_SPEED          1000000

    3.          #define SSD1306_DC_PIN               PIN_PB24
    4.          #define SSD1306_CS_PIN               PIN_PB27
    5.          #define SSD1306_RES_PIN              PIN_PA17
    复制代码
    1. #define SSD1306_CLOCK_SPEED           1000000UL
    2. #define SSD1306_DISPLAY_CONTRAST_MAX  40
    3. #define SSD1306_DISPLAY_CONTRAST_MIN  30
    复制代码
    当复位引脚低电平时,复位OLED
    1. static inline void ssd1306_hard_reset(void)
    2. {
    3.         uint32_t delay_10us = 10 * (system_gclk_gen_get_hz(0)/1000000);
    4.         port_pin_set_output_level(SSD1306_RES_PIN, false);
    5.         delay_cycles(delay_10us); // At lest 10us
    6.         port_pin_set_output_level(SSD1306_RES_PIN, true);
    7.         delay_cycles(delay_10us); // At lest 10us
    8. }
    复制代码
    页地址
    1. static inline void ssd1306_set_page_address(uint8_t address)
    2. {
    3.         // Make sure that the address is 4 bits (only 8 pages)
    4.         address &= 0x0F;
    5.         ssd1306_write_command(SSD1306_CMD_SET_PAGE_START_ADDRESS(address));
    6. }
    复制代码
    行地址
    1. static inline void ssd1306_set_column_address(uint8_t address)
    2. {
    3.         // Make sure the address is 7 bits
    4.         address &= 0x7F;
    5.         ssd1306_write_command(SSD1306_CMD_COL_ADD_SET_MSB(address >> 4));
    6.         ssd1306_write_command(SSD1306_CMD_COL_ADD_SET_LSB(address & 0x0F));
    7. }
    复制代码
    开始显示地址
    1. static inline void ssd1306_set_display_start_line_address(uint8_t address)
    2. {
    3.         // Make sure address is 6 bits
    4.         address &= 0x3F;
    5.         ssd1306_write_command(SSD1306_CMD_SET_DISPLAY_START_LINE(address));
    6. }
    复制代码
    写命令
    1. void ssd1306_write_command(uint8_t command)
    2. {
    3.         spi_select_slave(&ssd1306_master, &ssd1306_slave, true);
    4.         port_pin_set_output_level(SSD1306_DC_PIN, false);
    5.         spi_write_buffer_wait(&ssd1306_master, &command, 1);
    6.         spi_select_slave(&ssd1306_master, &ssd1306_slave, false);
    复制代码
    写数据
    1. void ssd1306_write_data(uint8_t data)
    2. {
    3.         spi_select_slave(&ssd1306_master, &ssd1306_slave, true);
    4.         port_pin_set_output_level(SSD1306_DC_PIN, true);
    5.         spi_write_buffer_wait(&ssd1306_master, &data, 1);
    6.         spi_select_slave(&ssd1306_master, &ssd1306_slave, false);
    7. }
    复制代码
    最终显示图片
    IMG_20160626_090708[1].jpg
    白条横屏,正在调试中
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-28 17:29 , Processed in 0.120477 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.