- void GPIO_OLED_Init(void)
 
- {
 
-   GPIO_InitTypeDef  GPIO_InitStructure;
 
 
-   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
 
-   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_2;
 
-   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
 
-   GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
 
-   GPIO_Init(GPIOA, &GPIO_InitStructure);
 
- }
- //-----------------OLED端口定义----------------
 
 
- #define OLED_SCL_Clr() GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET)
 
- #define OLED_SCL_Set() GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET)
 
 
- #define OLED_SDA_Clr() GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_RESET)
 
- #define OLED_SDA_Set() GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_SET)
 
在oledfont.h文件中定义的字库数组用到的关键字code删除操作,因为编译发现不兼容这个关键字,可使用const关键词修饰。
第四步,重定向delay函数,因为我们使用的新的开发平台默认的debug.h中提供了基于定时器的delay函数,因此需要将oled.c中的delay_ms函数内容改成如下形式,这样就不需要自己实现延时函数的细节了。
void delay_ms(unsigned int ms)
{                         
    Delay_Ms(ms);
}
第五步,将OLED需要的源文件添加到工程里,
 
然后刷新工程,在工程单击右键,然后按F5,或者点击刷新菜单。
第六步,写主函数
- #include "oled.h"
 
 
- void GPIO_OLED_Init(void)
 
- {
 
-   GPIO_InitTypeDef  GPIO_InitStructure;
 
 
-   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
 
-   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_2;
 
-   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
 
-   GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
 
-   GPIO_Init(GPIOA, &GPIO_InitStructure);
 
- }
 
- /*******************************************************************************
 
- * Function Name  : main
 
- * Description    : Main program.
 
- * Input          : None
 
- * Return         : None
 
- *******************************************************************************/
 
- int main(void)
 
- {
 
-     char i=0;
 
-     Delay_Init();
 
-     GPIO_OLED_Init();
 
-     OLED_Init();//初始化OLED
 
-     OLED_ColorTurn(0);//0正常显示,1 反色显示
 
-     OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
 
-     while(1)
 
-     {
 
-         for(i=0;i<8;i++)
 
-         OLED_ShowChinese(i*16,0,i,16);
 
-         //第二行显示  温度:
 
-         OLED_ShowChinese(0,2,8,16);//温
 
-         OLED_ShowChinese(16,2,9,16);//度
 
-         OLED_ShowChinese(32,2,12,16);//:
 
 
-         //在第二行,第四个字符位置显示36
 
-         OLED_ShowNum(48,2,36,2,16);
 
-         OLED_ShowChar(66,2,'.',16);
 
-         OLED_ShowNum(74,2,16,2,16);
 
 
-         OLED_ShowChinese(90,2,13,16);//℃
 
-         //在第三行显示字符串
 
-         OLED_ShowString(8,4,"bbs.21ic.com",16);
 
-         //在第4行显示字符串
 
- //  OLED_ShowString(8,6,"gaoyang9992006",16);
 
-         OLED_ShowString(0,6,"0123456789123456",16);
 
-     }
 
- }
 
 
烧录后看效果,刚刚的
 
一次点亮屏幕,非常棒。看来不管什么单片机,只要可移植能力做好,都是轻松移植的。