Bootstrap

学习笔记:STM32之OLED显示屏

1.对于OLED模块,我们几乎不用怎么改就可以拿来使用,一般只需要改以下几个点

        /*引脚配置*/
        #define OLED_W_SCL(x)        GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x))
        #define OLED_W_SDA(x)        GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))

这里我们使用的是GPIO_Pin_8和GPIOB, GPIO_Pin_9,如果你要使用的是GPIO_Pin_11和GPIO_Pin_12,你就要更改成如下:

        /*引脚配置*/
        #define OLED_W_SCL(x)        GPIO_WriteBit(GPIOB, GPIO_Pin_11, (BitAction)(x))
        #define OLED_W_SDA(x)        GPIO_WriteBit(GPIOB, GPIO_Pin_12, (BitAction)(x))

2.同时我们也要修改一下OLED的初始化

        /*引脚初始化*/
        void OLED_I2C_Init(void)
        {
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    
            GPIO_InitTypeDef GPIO_InitStructure;
             GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
            GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
            GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
             GPIO_Init(GPIOB, &GPIO_InitStructure);
            GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
             GPIO_Init(GPIOB, &GPIO_InitStructure);
    
            OLED_W_SCL(1);
            OLED_W_SDA(1);
        }

即是将8,9口改成11和12口

3.如何初始化多个端口

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    
             GPIO_InitTypeDef GPIO_InitStructure;
             GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
             GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
             GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
             GPIO_Init(GPIOB, &GPIO_InitStructure);
             GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
             GPIO_Init(GPIOB, &GPIO_InitStructure);

4.在主函数中如何写代码使OLED显示屏上显示出来

        对于显示字符和字符串,使用的OLED_ShowChar();和OLED_ShowString();它们不需要写他们占用的几个字符长度,例如;

        OLED_ShowChar(1,1,'A');          #表示在显示屏1行1列的地方显示A这个字符

        OLED_ShowString(2,1,"Hello"); #表示在显示屏2行1列的地方显示Hello这个字符串

        而对于显示数字(包括十进制,二进制,十六进制),它们都需要写出它们所占用的字符串长度,例如;

        OLED_ShowNum(3,1,66,2);  #若多给长度,则其会在前面不0,若短了,则会切断数字

        

;