SSD1306初始化
时间: 2023-08-27 21:14:44 浏览: 146
SSD1306的初始化过程如下:首先,调用OLED_Write_Ctrl_Start()函数,该函数通过I2C总线发送命令给OLED显示屏,将OLED显示屏设置为控制命令模式。然后,通过I2C_SendByte(0xAE)发送命令0xAE,用来关闭OLED显示屏。接下来,通过I2C_SendByte(0x20)发送命令0x20,用来设置内存地址模式为水平模式。再次调用OLED_Write_Ctrl_Start()函数,通过I2C_SendByte(0x21)发送命令0x21,用来设置列地址范围。然后,通过I2C_SendByte(0x00)和I2C_SendByte(0x7F)发送命令0x00和0x7F,用来设置列地址范围为0到127。接下来,再次调用OLED_Write_Ctrl_Start()函数,通过I2C_SendByte(0x22)发送命令0x22,用来设置页地址范围。然后,通过I2C_SendByte(0x00)和I2C_SendByte(0x07)发送命令0x00和0x07,用来设置页地址范围为0到7。接着,通过I2C_SendByte(0x40)发送命令0x40,用来设置显示起始行。然后,通过I2C_SendByte(0xB0)发送命令0xB0,用来设置页地址起始位置。接下来,再次调用OLED_Write_Ctrl_Start()函数,通过I2C_SendByte(0xC8)发送命令0xC8,用来翻转OLED显示屏的行。然后,通过I2C_SendByte(0xDA)发送命令0xDA,用来设置COM硬件引脚配置。再次调用OLED_Write_Ctrl_Start()函数,通过I2C_SendByte(0x12)发送命令0x12,用来设置COM硬件引脚配置。接下来,通过I2C_SendByte(0x81)发送命令0x81,用来设置对比度控制。然后,通过I2C_SendByte(0xFF)发送命令0xFF,用来设置对比度值。再次调用OLED_Write_Ctrl_Start()函数,通过I2C_SendByte(0xA4)发送命令0xA4,用来设置OLED显示屏为正常显示模式。然后,通过I2C_SendByte(0xA6)发送命令0xA6,用来设置OLED显示屏为正常显示模式。最后,通过I2C_SendByte(0xAF)发送命令0xAF,用来打开OLED显示屏,完成初始化过程。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [ssd1306 OLED 初始化流程](https://blog.csdn.net/u010261063/article/details/119282317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [【STM32标准库】【自制库】0.96寸OLED显示屏(SSD1306)(0)OLED初始化,软件I2C实现,基础数据发送](https://blog.csdn.net/m0_57585228/article/details/124790555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文