单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1871|回复: 5
收起左侧

STM32 OLED显示屏实验程序

[复制链接]
乐观的知觉 发表于 2018-12-29 17:13 | 显示全部楼层 |阅读模式
oled显示屏实验

   
硬件资源:
    1,DS0(连接在PB5),DS1(连接在PE5)
    2,按键KEY0(PE4)/KEY1(PE3)/KEY2(PE2)/KEY_UP(PA0,也称之为WK_UP)
    3,串口1(波特率:115200,PA9/PA10连接在板载USB转串口芯片CH340上面)
    4,串口3(波特率:115200,PB10/PB11)
    5,通用定时器3、通用定时器5
   
实验现象:
     OLED 显示了三种尺寸的字符:24*12(ALIENTEK)、16*8(0.96’ OLED TEST)和12*6(剩下的内容)。
     说明我们的实验是成功的,实现了三种不同尺寸 ASCII 字符的显示,在最后一行不停的显示 ASCII 字符以及其码值。

ALIENTEK STM32开发板SYSTEM文件夹,采用V3.5库的头文件(stm32f10x.h、system_stm32f10x.h和
core_cm3.h等几个文件放在:SYSTEM\sys 文件夹里面),使得代码可以完美移植到库函数里面使用,
不过需要注意,在新建工程的时候,请在:Options for Target-->C/C++ 选项卡里面 Preprocessor
Symbols 栏定义你的STM32芯片容量。比如:ALIENTEK战舰STM32开发板用户,使用的是大容量的STM32
芯片,则在Define栏输入:STM32F10X_HD

对于STM32F103系列芯片,设置原则如下:
16KB≤FLASH≤32KB       选择:STM32F10X_LD
64KB≤FLASH≤128KB      选择:STM32F10X_MD
256KB≤FLASH≤512KB     选择:STM32F10X_HD
单片机源程序如下:
  1. /**************************************************************************
  2.         * 函 数 名:主函数
  3.         * 函数功能:
  4.         * 输    入:无
  5.         * 输    出:无
  6. *************************************************************************/
  7. #include "sys.h"        
  8. #include "delay.h"
  9. #include "led.h"
  10. #include "usart.h"
  11. #include "oled.h"

  12. int main(void)
  13. {        
  14.          u8 t=0;                    
  15.          Stm32_Clock_Init(9);        //系统时钟设置
  16.         delay_init(72);                            //延时初始化
  17.         uart_init(72,115200);        //串口初始化
  18.         LED_Init();                                  //初始化与LED连接的硬件接口
  19.         OLED_Init();                        //初始化OLED
  20.   OLED_ShowString(0,0,"ALIENTEK",24);  
  21.         OLED_ShowString(0,24, "0.96' OLED TEST",16);  
  22.          OLED_ShowString(0,40,"ATOM 2015/1/14",12);  
  23.          OLED_ShowString(0,52,"ASCII:",12);  
  24.          OLED_ShowString(64,52,"CODE:",12);  
  25.         OLED_Refresh_Gram();        //更新显示到OLED         
  26.         t=' ';  
  27.         while(1)
  28.         {               
  29.                 OLED_ShowChar(36,52,t,12,1);//显示ASCII字符        
  30.                 OLED_ShowNum(94,52,t,3,12);        //显示ASCII字符的码值   
  31.                 OLED_Refresh_Gram();//更新显示到OLED
  32.                 t++;
  33.                 if(t>'~')t=' ';  
  34.                 delay_ms(500);
  35.                 LED0=!LED0;
  36.         }        
  37. }
复制代码

所有资料51hei提供下载:
oled显示实验.7z (238.57 KB, 下载次数: 32)
回复

使用道具 举报

admin 发表于 2018-12-29 21:16 | 显示全部楼层
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

混沌未开 发表于 2018-12-30 08:58 来自手机 | 显示全部楼层
楼主,我想问一下
oled显示字体变虚了,这是怎么回事啊
IMG20181230085105.jpg
回复

使用道具 举报

wuxishun 发表于 2019-1-1 09:17 来自手机 | 显示全部楼层
看不懂程序
回复

使用道具 举报

link01 发表于 2019-2-9 11:49 | 显示全部楼层
看的不是很懂啊
回复

使用道具 举报

huatuo 发表于 2019-8-19 11:17 | 显示全部楼层
看的不是很懂啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

快速回复 返回顶部 返回列表