SSD1306 三线SPI 不显示,求助

2019-07-21 04:12发布



为什么我的三线SPI 会不显示呢,代码如下

void OLED_WR_Byte(u8 dat,u8 cmd)
{
  u8 i = 0;       
        OLED_CS=0;
        OLED_SCLK=0;
        if(cmd == OLED_CMD)
                OLED_SDIN=0;
        else
                OLED_SDIN=1;
        OLED_SCLK=1;
        for(i=0;i<8;i++)
        {                          
                OLED_SCLK=0;
                if(dat&0x80)OLED_SDIN=1;
                else OLED_SDIN=0;
                OLED_SCLK=1;
                dat<<=1;   
        }                                 
        OLED_CS=1;                  
}


//GPIO初始化
   GPIO_InitTypeDef GPIO_InitStructure;
   //SPI_InitTypeDef  SPI_InitStructure;
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE );//PORTBê±&#214;óê1&#196;ü
         //RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,  ENABLE );//SPI2ê±&#214;óê1&#196;ü        
         //SPI_SSOutputCmd(SPI2,ENABLE);
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //PB13/14/15&#184;′ó&#195;í&#198;íìê&#228;3&#246;
         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
         GPIO_Init(GPIOB, &GPIO_InitStructure);//3&#245;ê&#188;&#187;ˉGPIOB
         GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_15);
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//&#198;&#172;&#209;&#161;
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
         GPIO_Init(GPIOB, &GPIO_InitStructure);//3&#245;ê&#188;&#187;ˉGPIOB
         GPIO_SetBits(GPIOB,GPIO_Pin_5);
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
         GPIO_Init(GPIOB, &GPIO_InitStructure);//3&#245;ê&#188;&#187;ˉGPIOB
         GPIO_SetBits(GPIOB,GPIO_Pin_3);
         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);


原理图

不应该有错啊,按照原子的教程来写的

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。