目录

MSP430-G2553-硬件IIC-OLED-单片机-OLED滚动显示

MSP430 G2553 硬件IIC OLED 单片机 OLED滚动显示

效果:

https://i-blog.csdnimg.cn/blog_migrate/f92e7235943352d7c096f870ba36216a.png#pic_center

https://i-blog.csdnimg.cn/blog_migrate/5817f438f83e83f9504df8c23c0f4289.png#pic_center

总结:

(1)网上没好用的源码;

(2)SSD1306地址是0X3C,7位地址模式。

(3)G2553手册确实介绍得很好。

(4)SSD1306写入命令顺序:开始信号–>等待UCB0TXIFG–>写入0X3C地址–>等待UCB0TXIFG->写入0X00控制字–>等待UCB0TXIFG–>写入命令字符–>等待UCB0TXIFG–>发送停止信号。

(5)SSD1306写入数据顺序:开始信号–>等待UCB0TXIFG–>写入0X3C地址–>等待UCB0TXIFG->写入0X40控制字–>等待UCB0TXIFG–>写入数据字符–>等待UCB0TXIFG–>发送停止信号。

(6)USCI模块支持的东西不一样:

https://i-blog.csdnimg.cn/blog_migrate/4030d71e4716d3b6388edf87d9928656.png#pic_center

IIC通信的细节:

(1)是7位地址,最后一个表示读写,0是主机写入从机,很多器件地址都得考虑一下了。这和软件IIC有很大的区别。

https://i-blog.csdnimg.cn/blog_migrate/3e9e213c3beaa3878cfa47356c151bda.png#pic_center

(2)不需要停止信号,数据线就可以重定义数据流方向。只需要在中途重新发开始信号,然后给的地址最后一位R/W决定一下,数据可以任意方向流动。搞完后还是发停止信号。

https://i-blog.csdnimg.cn/blog_migrate/f72b331188f86c39b68b824995bd6be7.png#pic_center

(3)IIC操作模式分为四种:从机发送者角色、从机接受者角色、主机发送者角色、主机接受者角色。

下图中,UCA10 Own addressing mode select是决定7位地址还是10位地址。UCMST Master是决定是从机还是主机。UCMODEx给11是IIC模式。

https://i-blog.csdnimg.cn/blog_migrate/62a1eb130b5039d6c342d8dc7105171a.png#pic_center

下图中UCTR是决定发送者还是接受者的。

https://i-blog.csdnimg.cn/blog_migrate/d02ae02c7d14c0e32d05a1b040c348c9.png#pic_center

(4)网上程序都使用了中断,好处就是中断处理利于程序健壮性,坏处就是看着有点跳跃,各有各的好吧。

(5)IIC说是能达到100K HZ时钟,但也是做好PCB,走线的线粗+线短,最好加个1K的上拉电阻。我做这个实验用的杜邦线,杜邦线搞的,时钟高了就直接无响应了。

(6)

滚动

向右滚动显示

(7)控制像素点显示。 unsigned char OLED_GRAM[128][8]; 导致G2553内存瘫痪了,这一点需要使用别的单片机实现,比如MSP430F5529。好像也可以依靠读取SSD1302中的数据,但只有8080接口或者6800接口,详见下面的图,有R/W选择的。

SSD1306通信方式靠硬件选择:

https://i-blog.csdnimg.cn/blog_migrate/cbdca78b912d024f015dfb97ede67e19.png#pic_center

帮助、问询