STM32f4---OLCD显示实验代码(01)

发布者:柳絮轻风最新更新时间:2018-09-29 来源: eefocus关键字:STM32f4  OLCD  显示实验 手机看文章 扫描二维码
随时随地手机看文章

本实验,我们新建了 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


关键字:STM32f4  OLCD  显示实验 引用地址:STM32f4---OLCD显示实验代码(01)

上一篇:STM32f4---OLCD显示实验代码(02)
下一篇:STM32f4---电容触摸按键实验代码(02)

推荐阅读最新更新时间:2024-03-16 16:14

2440裸机程序——LCD图片显示实验
我使用的软件平台是MDK,工程当中需要添加 S3C2440A.s ;2440lib.c;main.c;lcd.c;sunflower_240x320.c 这五个程序。 其中sunflower_240x320.c 是一幅BMP格式向日葵图片的 *.c文件,在此不再列出,若没有这个文件,可以用转换工具如 bmp2h.exe 把bmp格式的图片转换成64K色的数组数据(*.c文件); 下面分别列出 main.c;lcd.c 这两个程序。 主程序: /*****************************************************************************************
[单片机]
STM32F4_SYSTICK定时器
关于SYSTICK定时器的说明,在STM32F4的参考手册中并没有提到,因为这个定时器是属于Cortex内核的内容。在《Cortex M3权威指南》中,可以在第八章,也即“NVIC与中断控制”那一章节的最后才可看到其详细说明,摘取如下。 //-----------------------------------------------------------------------------------------------------------// SysTick定时器被捆绑在NVIC中,用
[单片机]
<font color='red'>STM32F4</font>_SYSTICK定时器
STM32F407 周期唤醒功能
1.下图是STM32F407的中文参考手册中,RTC介绍部分。因为我想实现单片机每秒自动唤醒自己一次,开始打算用闹钟中断,但是每次唤醒以后都要自己设置下次唤醒的时间,简单的方法是秒+1,但是要考虑是不是59秒的情况,比较麻烦。所以就选择唤醒中断的方式。 2.时钟图分析: (1)通过寄存器RTC_CR WUCKSESEL 设置唤醒时钟,为了方式我选择的是10X(1HZ)。 标准库代码:RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_16bits); (2)通过RTC_WUTR寄存器设置周期唤醒的时间 标准库代码:RTC_SetWakeUpCounter(X-1);/
[单片机]
<font color='red'>STM32F4</font>07 周期唤醒功能
基于Cortex-M4的STM32F4的复位序列
初次接触到 STM32 F7,可能会有个疑惑,为什么0地址变成了ITCM RAM 的起始地址。系统复位还是从地址0处开始执行吗?如果是,那这似乎看起来是冲突的。实际上,STM32F7是基于Cortex-M7内核,而Cortex-M7和Cortex-M3/M4的复位序列有些不一样。本文中,将针对这个问题做详细讲解。 STM32F4的复位序列 STM32F4基于Cortex-M4。对于基于Cortex-M3/M4的 芯片 ,复位后总是从0x00000000地址处,取主堆栈指针(MSP)的值,从0x00000004处,取出PC的初始值(这个值是复位向量),然后从这个值对应的地址处取指。 这两个值,就是中断向量表里的第一个和第二个
[单片机]
基于Cortex-M4的<font color='red'>STM32F4</font>的复位序列
STM32F4的库函数RCC_PLLConfig()代替SystemInit()手动初始化
STM32上电复位后首先执行Reset_Handler,然后调用SystemInit()函数完成时钟等基本初始化,再执行main函数。 ; Reset handler Reset_Handler PROC EXPORT Reset_Handler IMPORT SystemInit IMPORT __main LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP SystemInit()函数在文件system_stm32f4xx
[单片机]
stm32f4的GPIO和位带区
1、stm32f4的GPIO,有GPIOA~GPIOI,每组GPIO,有16个IO引脚。GPIO地址如下: GPIOA 0x4002 0000 - 0x4002 03FF GPIOB 0x4002 0400 - 0x4002 07FF GPIOC 0x4002 0800 - 0x4002 0BFF GPIOD 0x4002 0C00 - 0x4002 0FFF GPIOE 0x4002 1000 - 0x4002 13FF GPIOF 0x4002 1400 - 0x4002 17FF GPIOG 0x4002 1800 - 0x4002 1BFF GPIOH 0x4002 1C00 - 0x4002 1FFF
[单片机]
对一款国产3D霍尔传感器的SPI封装
对一款国产的3D霍尔传感器的SPI封装.上 这篇文章完成我们的封装,以及在STM32F4的板子上面测试。 一次费我这么多引脚,我吐了。看来得上IIC,然后就是板子的引脚选择注意在cubuMX里面和实际的板子丝印多次比对,一个中断脚改了两次,气死我了。 BUTT_OUT 管脚用于检测磁铁与芯片之间的按键功能,并且也可以配置为 Trigger 模式,触发单次测量。 INT:主机向芯片发送持续感应模式或单次测量命令,芯片完成一次对应测量项的测量后,INT 脚会置 1,并且在芯片发送读取命令,读回测量数据以前,都保持为 1。主机向芯片发送唤醒睡眠模式命令后,当芯片周围测量项的变化量超出寄存器中设定的变化阈值时,INT 脚会置 1,并且在芯
[单片机]
对一款国产3D霍尔传感器的SPI封装
STM32F4入门前的热身之一:认识stm32F4 Cortex-M4
1 简介 STM32F4系列基于ARM Cortex -M4内核,采用了90纳米的NVM工艺和ART(自适应实时存储器加速器,Adaptive Real-Time Memory Accelerator )。 ART技术使得程序零等待执行,提升了程序执行的效率,将Cortext-M4的性能发挥到了极致。 STM32 F4系列可达到 210DMIPS@168MHz 。 集成了单周器DSP指令和FPU(floating point unit,浮点单元),提升了计算能力,可以进行一些复杂的计算和控制。 STM32 F4系列引脚和软件兼容于当前的STM32 F2系列产品。 技术特征  超快速数据传送  采用多达7重AHB总线矩阵
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved