MSP430 G2553 硬件SPI OLED 单片机 0.96英寸7针OLED SPI 6针OLED

SSD1306通信方式靠硬件选择:
在这里插入图片描述
四线SPI(只针对SSD1306的一个名字)的OLED款式1
D0时钟 D1数据 RST复位 DC数据命令选择
在这里插入图片描述
四线SPI(只针对SSD1306的一个名字)的OLED款式2
D0时钟 D1数据 RST复位 DC数据命令选择 CS片选
在这里插入图片描述

四线SPI模式的时序图,重点看,单片机是得在时钟上升沿给数据,一个字节先传输的最高位。但后面设置G2553的时候,却是需要下降沿给数据,搞不懂这里。
在这里插入图片描述

G2553中的SPI(Universal Serial Communication Interface, SPI Mode)USCI模块,
(1)四线是这四根线,最后一根STE是使能线。G2553可以选择STE是高电平使能还是低电平(调节寄存器)。

在这里插入图片描述
(2)时钟线的极性和相位是通过寄存器UCCKPL and UCCKPH 控制。控制SSD1306时候UCCKPL 是1才行。
在这里插入图片描述
(3)CS片选线可以直接接GND就好了。

#include <msp430.h>
#include "oled.h"

//            |    G2       P1.2|-> Data Out (UCA0SIMO)   --D1(OLED)
//            |             P1.1|<- Data In (UCA0SOMI)
//            |             P1.4|<- Serial Clock In (UCA0CLK)  --D0(OLED)
//            |             P2.0|->RES(OLED) 任意指定一个引脚
//            |             P2.1|->DC(OLED)  任意指定一个引脚
//            |              GND|->CS(OLED)  直接接GND片选上OLED

int main(void)
{
    
    

    WDTCTL = WDTPW + WDTHOLD; /* Stop WDT */
    OLED_Init(); /* OLED初始化 */
    OLED_ShowString(0, 0, "QQ137712826", 16, 1);
    OLED_ShowString(0, 2, "QQ137712826", 16, 0);
    OLED_ShowString(0, 4, "QQ137712826", 8, 1);
    OLED_ShowString(0, 5, "QQ137712826", 8, 1);
    OLED_ShowString(0, 6, "QQ137712826", 8, 1);
    OLED_ShowString(0, 7, "QQ137712826", 8, 1);

    while (1)
    {
    
    

    }
}


(4) SPI比IIC协议快,而且非常稳定,刷屏几乎是一瞬间完成。而且IIC需要地址,设置起来还挺费事的,SPI的线虽然看起来多,但其实并不麻烦。用了硬件SPI方式后,更喜欢OLED了。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/x1131230123/article/details/108688147