打印

立创商城STM32F系列——STM32f4 OLCD显示实验代码(01)

[复制链接]
635|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小乐Tzz|  楼主 | 2018-9-7 11:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32f4————OLCD显示实验代码(01)
/*******************************************************/
本实验,我们新建了 oled.c和 oled.h 文件。这两个文件用来存放OLED相关的驱动函数以及文件申明等。
oled.c 的代码,由于比较长,这里我们就不贴出来了,仅介绍几个比较重要的函数。首先是 OLED_Init 函数,该函数的结构比较简单,开始是对 IO 口的初始化,这里我们用了宏定义OLED_MODE 来决定要设置的 IO 口,其他就是一些初始化序列了,我们按照厂家提供的资料来做就可以。最后要说明一点的是,因为OLED 是无背光的,在初始化之后,我们把显存都清空了,所以我们在屏幕上是看不到任何内容的,跟没通电一个样,不要以为这就是初始化失败,要写入数据模块才会显示的。OLED_Init函数代码如下:
//初始化 SSD1306               
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
/*******************************************************/


【立创商城】STM32F103CBT6 托盘  https://item.szlcsc.com/8796.html

相关帖子

沙发
mrliangg| | 2018-11-6 08:57 | 只看该作者
不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

70

帖子

0

粉丝