STM32 控制I2C接口LCD
I2C总线硬件简单,资源消耗少,只有时钟和数据线。协议设计精巧、易用、灵活;可以传输数据、指令、地址,因此使用广泛,现在几乎所有的MCU及各种控制器都集成了I2C总线。
硬件资源
—LCD:RSCG12864B(内建字库、支持基础图形绘制、图片存储功能)
—MCU:STM32F103C8T
控制原理
—此例用STM32F103C8T的I2C1控制RSCG12864B
—PB7(SDA)连接RSCG12864B的SDA,PB6(SCL)连接RSCG12864B的SCL
—RSCG12864B内部自带复位信号,同时支持通过RST硬件复位。
—RSCG12864的BUSY信号为忙反馈信号,可连接MCU的任意IO口判断处理。如果画面更新频率不高的话,此信号悬空处理即可。A0,A1为地址信号,具体详见产品手册。
亮度调节功能,设置背光亮度,参数n 取值0~255,上电默认值为0,即背光处于关闭状态。
地址包格式:
所有I2C 总线上传输的地址包都是9位数据长度,由7位地址,1位/WRITE控制位和1位应答位
组成。/WRITE 位为“0”,从机被寻址后,必须在第9 个SCL(ACK)周期通过拉低SDA 线做出
应答。若该从机忙或有其它原因无法响应主机,则应在ACK 周期保持SDA 线为高。然后主机
可以发出STOP停止本次操作。
显示ASCII(5*7)(0X24)执行执行此指令,将以当前光标位置为起始地址,显示字符数据d0,d1,d……,此指令必须以0x00 作结束标志。