资源描述:
《OLED(SSD1306)基于STM32寄存器版驱动》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于STM32的OLED(SSD1306)寄存器版编译即可用!OLED的头文件#ifndef_OLED_H#define_OLED_H#include"sys.h"/*//////////////////////////////////////////////////////////////////////////////////////////////////////SSD1306,当接口为SPI的驱动//功能简介:显示字符,字符串,数字,和小区域屏幕填充//作者:范桢干//时间:2016.1.6*////////////////////////////////////////
2、///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////接口定义///////////#defineOLED_SCLKPCout(10)#defineOLED_SDAPBout(15)#defineOLED_RSTPBout(13)#defineOLED_DCPBout(11)//#defi
3、neOLED_CSPAout(4)//////////////////////////////////////////////////////////////////////////////////////////////////////voidOLED_Init(void);//OLED初始化voidOLED_Clear(u8Fill);//OLED清屏/清屏voidOLED_ShowChar(u8uPage_sta,u8uColumn_sta,u8uSize,u8uChar);//在指定Page_sta,Column_sta和Size输入字符CharvoidOLED_Show
4、String(u8uPage_sta,u8uColumn_sta,u8uSize,u8*p);//在指定Page_sta,Column_sta处输入大小为Size的字符串*pvoidOLED_ShowNum(u8uPage,u8uColumn_sta,u8uSize,u32uNum);//在指定Page_sta,Column_sta处输入大小为Size的数字uNum,范围:(0~4294967295)voidOLED_Fill(u8uPage_sta,u8uColumn_sta,u8uColumn_end,u8Fill);//在Page_sta,从uColumn_sta到uCol
5、umn_end填充或清屏#endifOLED的C文件#include"oled.h"#include"delay.h"#include"ASCII.h"//函数名称:voidOLED_WriteCmd(u8uCmd)//函数功能:OLED写一个指令//函数参数:uCmd:写入的指令voidOLED_WriteCmd(u8uCmd){u8i;OLED_DC=0;//写指令for(i=0;i<8;i++){OLED_SCLK=0;if(uCmd&0x80)//先发送高位{OLED_SDA=1;}else{OLED_SDA=0;}OLED_SCLK=1;uCmd<<=1;//左移一位}
6、OLED_SCLK=0;}//函数名称:voidOLED_WriteDat(u8uDat)//函数功能:OLED写一个数据//函数参数:uDat:写入的数据voidOLED_WriteDat(u8uDat){u8i;OLED_DC=1;//写数据for(i=0;i<8;i++){OLED_SCLK=0;if(uDat&0x80)//先发送高位{OLED_SDA=1;}else{OLED_SDA=0;}OLED_SCLK=1;uDat<<=1;//左移一位}OLED_SCLK=0;}//函数名称:voidOLED_Init(void)//函数功能:OLED初始化voidOLED_I
7、nit(void){RCC->APB2ENR
8、=1<<3;//使能PORTB时钟RCC->APB2ENR
9、=1<<4;//使能PORTC时钟GPIOB->CRH&=0X0F0F0FFF;GPIOB->CRH
10、=0X30303000;//PB11,13,15推挽输出GPIOC->CRH&=0XFFFFF0FF;GPIOC->CRH
11、=0X00000300;//PC10推挽输出OLED_RST=0;//低电平复位delay_ms(10);OLED_RST=1;//复位完毕delay_