SPI发送数据:
OLED时序:
oled画图方法:
#include "oled.h"
#include "pic.h"
#include "gif1.h"
#include "font.h"/*
函数名:OLED_PortInit
函数功能:OLED管脚初始化
返回值:void
形参:void
函数说明:
OLED_CS --- PB7 --- 通用推挽输出
OLED_RES --- PB6 --- 通用推挽输出
OLED_MOSI --- PB15 --- 通用推挽输出
OLED_SCL --- PB13 --- 通用推挽输出
OLED_DC --- PB12 --- 通用推挽输出
*/
void OLED_PortInit(void)
{
//1、打开时钟(GPIOB、GPIOA)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
//2、IO初始化
GPIO_InitTypeDef GPIO_InitStruct={0};
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//配置为通用推挽输出
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 |GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_15;//配置管脚
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//IO速度为50Mhz
GPIO_Init(GPIOB,&GPIO_InitStruct);
//3、上电初始IO电平设置
OLED_RES_H;//复位管脚
OLED_CS_H;//片选管脚
}
/*
函数名:Spi_TransferData
函数功能:OLED SPI数据交换函数
返回值:void
形参:u8 data 需要发送8bit数据
函数说明:
D7 - D0位: 一次发送8bit数据,且高位先出
下降沿发送数据,上升沿SH1106接收数据
*/void Spi_TransferD