实验12 OLED显示,为什么看不到SPI 时钟使能的函数 ?

2019-07-21 00:40发布

如题,在实验12 OLED显示例程中,OLED初始化函数中,只有GPIO 初始化的部化,为什么看不到SPI初始化如SPI时钟使能函数等函数,

//初始化SSSD1306    
void OLED_Init(void)
{  
  GPIO_InitTypeDef  GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE|RCC_AHB1Periph_GPIOG, ENABLE);//????PORTA~E,PORTG?±??
  
#if OLED_MODE==1 //使用8080 并口模式

//GPIO初始化设置
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//???¨????????
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//???ì????
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//????
  GPIO_Init(GPIOA, &GPIO_InitStructure);//??????

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7 ;
GPIO_Init(GPIOB, &GPIO_InitStructure);//??????

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_11;
GPIO_Init(GPIOC, &GPIO_InitStructure);//??????
  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_Init(GPIOD, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_5;
GPIO_Init(GPIOE, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOG, &GPIO_InitStructure);//??????
 

  OLED_WR=1;
OLED_RD=1; 
#else //使用4线SPI模式
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//???¨????????
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//???ì????
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//????
  GPIO_Init(GPIOB, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_Init(GPIOC, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOD, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOG, &GPIO_InitStructure);//??????

OLED_SDIN=1;
OLED_SCLK=1;
#endif
OLED_CS=1;
OLED_RS=1;  

OLED_RST=0;
delay_ms(100);
OLED_RST=1; 
 
OLED_WR_Byte(0xAE,OLED_CMD); //??±?????
OLED_WR_Byte(0xD5,OLED_CMD); //?è???±??·????ò×?,????????
OLED_WR_Byte(80,OLED_CMD);   //[3:0],·????ò×?;[7:4],????????
OLED_WR_Byte(0xA8,OLED_CMD); //?è???????·??
OLED_WR_Byte(0X3F,OLED_CMD); //????0X3F(1/64) 
OLED_WR_Byte(0xD3,OLED_CMD); //?è??????????
OLED_WR_Byte(0X00,OLED_CMD); //??????0

OLED_WR_Byte(0x40,OLED_CMD); //?è???????????? [5:0],????.
   
OLED_WR_Byte(0x8D,OLED_CMD); //????±??è??
OLED_WR_Byte(0x14,OLED_CMD); //bit2??????/??±?
OLED_WR_Byte(0x20,OLED_CMD); //?è?????????·????
OLED_WR_Byte(0x02,OLED_CMD); //[1:0],00???????·????;01???????·????;10,?????·????;????10;
OLED_WR_Byte(0xA1,OLED_CMD); //?????¨???è??,bit0:0,0->0;1,0->127;
OLED_WR_Byte(0xC0,OLED_CMD); //?è??COM?¨?è·??ò;bit3:0,???¨????;1,???¨?????? COM[N-1]->COM0;N:?????·??
OLED_WR_Byte(0xDA,OLED_CMD); //?è??COM????????????
OLED_WR_Byte(0x12,OLED_CMD); //[5:4]????
 
OLED_WR_Byte(0x81,OLED_CMD); //??±????è??
OLED_WR_Byte(0xEF,OLED_CMD); //1~255;????0X7F (?????è??,???ó????)
OLED_WR_Byte(0xD9,OLED_CMD); //?è???¤????????
OLED_WR_Byte(0xf1,OLED_CMD); //[3:0],PHASE 1;[7:4],PHASE 2;
OLED_WR_Byte(0xDB,OLED_CMD); //?è??VCOMH ????±???
OLED_WR_Byte(0x30,OLED_CMD); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc;

OLED_WR_Byte(0xA4,OLED_CMD); //????????????;bit0:1,????;0,??±?;(°×??/????)
OLED_WR_Byte(0xA6,OLED_CMD); //?è??????·???;bit0:1,·??à????;0,????????       
OLED_WR_Byte(0xAF,OLED_CMD); //????????  
OLED_Clear();
}  


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