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
单片机源程序如下:
- /**************************************************************************
- * 函 数 名:主函数
- * 函数功能:
- * 输 入:无
- * 输 出:无
- *************************************************************************/
- #include "sys.h"
- #include "delay.h"
- #include "led.h"
- #include "usart.h"
- #include "oled.h"
- int main(void)
- {
- u8 t=0;
- Stm32_Clock_Init(9); //系统时钟设置
- delay_init(72); //延时初始化
- uart_init(72,115200); //串口初始化
- LED_Init(); //初始化与LED连接的硬件接口
- OLED_Init(); //初始化OLED
- OLED_ShowString(0,0,"ALIENTEK",24);
- OLED_ShowString(0,24, "0.96' OLED TEST",16);
- OLED_ShowString(0,40,"ATOM 2015/1/14",12);
- OLED_ShowString(0,52,"ASCII:",12);
- OLED_ShowString(64,52,"CODE:",12);
- OLED_Refresh_Gram(); //更新显示到OLED
- t=' ';
- while(1)
- {
- OLED_ShowChar(36,52,t,12,1);//显示ASCII字符
- OLED_ShowNum(94,52,t,3,12); //显示ASCII字符的码值
- OLED_Refresh_Gram();//更新显示到OLED
- t++;
- if(t>'~')t=' ';
- delay_ms(500);
- LED0=!LED0;
- }
- }
复制代码
所有资料51hei提供下载:
oled显示实验.7z
(238.57 KB, 下载次数: 124)
|