当前位置: 首页 > wzjs >正文

会唐网做网站制作网站平台

会唐网做网站,制作网站平台,网站自动跳转怎么办,手机模板网站模板下载工具本节实现点亮OLED屏 首先去原理图中查找对应引脚 配置上述的IO口 查看对应的原理图 ​​​​​​​ OLED_CS 和 OLED_RES(PB6,PB7)就是配置为推挽输出OLED_SCLK 和 OLED_SDIN (PB13 PB15)OLED_D/C (PE12) 推挽输出就…

本节实现点亮OLED屏

首先去原理图中查找对应引脚

图片

图片

配置上述的IO口

图片

查看对应的原理图

​​​​​​​

OLED_CS 和 OLED_RES(PB6,PB7)就是配置为推挽输出OLED_SCLK  和 OLED_SDIN (PB13 PB15)OLED_D/C (PE12) 推挽输出就是配置为复用推挽输出

代码展示

OLED.h

#ifndef _OLED_H_#define _OLED_H_
#include "stm32f10x.h"
#define OLED_RES_H  GPIO_SetBits (GPIOB, GPIO_Pin_6)#define OLED_RES_L  GPIO_ResetBits (GPIOB, GPIO_Pin_6)#define OLED_CS_H   GPIO_SetBits (GPIOB, GPIO_Pin_7)#define OLED_CS_L   GPIO_ResetBits (GPIOB, GPIO_Pin_7)#define OLED_DC_H   GPIO_SetBits (GPIOB, GPIO_Pin_12)#define OLED_DC_L   GPIO_ResetBits (GPIOB, GPIO_Pin_12)
void OLED_Init(void);
#endif

OLED.c

#include "oled.h"#include "delay.h"函数功能:OLED_SPI管脚初始化OLED_SCK --- PB13 – 复用推挽输出输出OLED_MOSI –  PB15 – 复用推挽输出输出OLED_CS  --  PB7  - 推挽输出void OLED_SPI_PinInit(void){//打开GPIOB时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
//初始化GPIO口为推挽输出	GPIO_InitTypeDef GPIO_InitStruct;//结构体变量,会申请空间	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;					GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;	GPIO_Init (GPIOB, &GPIO_InitStruct);
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_7;	GPIO_Init (GPIOB, &GPIO_InitStruct);
//打开SPI2时钟	RCC_APB1PeriphClockCmd (RCC_APB1Periph_SPI2, ENABLE);
//初始化SPI2	SPI_InitTypeDef SPI_InitStruct;	SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex;//双向单向 - 全双工  SPI_InitStruct.SPI_Mode = SPI_Mode_Master;			//主机模式  SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;	//数据宽度 8bit  SPI_InitStruct.SPI_CPOL = SPI_CPOL_High;				//空闲高电平  SPI_InitStruct.SPI_CPHA = SPI_CPHA_2Edge;				//后沿采集 -- MODE3  SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;					//使能软件从器件  SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;//18MHz  SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;	//高位在前  SPI_InitStruct.SPI_CRCPolynomial = 7;						//默认值	SPI_Init (SPI2, &SPI_InitStruct);
//使能SPI2	SPI_Cmd (SPI2, ENABLE);}函数功能:OLED_SPI传输字节函数函数形参:待传输的字节void OLED_SPI_TransferByte(u8 sByte){//等待发送缓冲区为空while(SPI_I2S_GetFlagStatus (SPI2, SPI_I2S_FLAG_TXE) == RESET);SPI2->DR = sByte;
//等待接收缓冲区不为空 == 不能省略while(SPI_I2S_GetFlagStatus (SPI2, SPI_I2S_FLAG_RXNE) == RESET);}函数功能:OLED管脚初始化OLED_SCK --- PB13 – 复用推挽输出输出OLED_MOSI –  PB15 – 复用推挽输出输出OLED_CS  --  PB7  - 推挽输出OLED_DC  --  PB12 – 推挽输出OLED_RES –-  PB6  – 推挽输出
void OLED_PinInit(void){OLED_SPI_PinInit( ); //直接调用上面SPI管脚初始化
//打开GPIOB时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
//初始化GPIO口为推挽输出	GPIO_InitTypeDef GPIO_InitStruct;//结构体变量,会申请空间	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_12;					GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;	GPIO_Init (GPIOB, &GPIO_InitStruct);
OLED_RES_H;//不复位OLED_CS_H;//不选中从机}函数功能:OLED发送命令函数函数形参:待发送的命令void OLED_SendCommand(u8 cmd){OLED_CS_L;//拉低片选OLED_DC_L;//拉低 - 命令
OLED_SPI_TransferByte(cmd);
OLED_CS_H;//拉高片选}函数功能:OLED发送数据函数函数形参:待发送的数据void OLED_SendData(u8 data){OLED_CS_L;//拉低片选OLED_DC_H;//拉高 - 数据
OLED_SPI_TransferByte(data);
OLED_CS_H;//拉高片选}函数功能:OLED清屏void OLED_Clear(void){	u8 i, j;
for(i = 0; i < 8; i++)//控制页地址	{//设置起始位置  第i页第0列OLED_SendCommand(0xB0 | i);//设置起始页地址OLED_SendCommand(0x00);//设置列地址低四位OLED_SendCommand(0x10);//设置列地址高四位
for(j = 0; j < 128; j++)//控制列数		{//发送数据OLED_SendData(0x0F);		}	}}函数功能:OLED初始化函数形参:None函数返回值:None备注:厂家提供的初始化序列
void OLED_Init(void){OLED_PinInit( );//管脚初始化
OLED_RES_H;delay_ms(100);OLED_RES_L;delay_ms(100);OLED_RES_H;delay_ms(100); 
OLED_SendCommand(0xAE); //关闭显示OLED_SendCommand(0xD5); //设置时钟分频因子,震荡频率OLED_SendCommand(80);   //[3:0],分频因子;[7:4],震荡频率OLED_SendCommand(0xA8); //设置驱动路数OLED_SendCommand(0X3F); //默认0X3F(1/64)OLED_SendCommand(0xD3); //设置显示偏移OLED_SendCommand(0X00); //默认为0
OLED_SendCommand(0x40); //设置显示开始行 [5:0],行数.
OLED_SendCommand(0x8D); //电荷泵设置OLED_SendCommand(0x14); //bit2,开启/关闭OLED_SendCommand(0x20); //设置内存地址模式OLED_SendCommand(0x02); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10;OLED_SendCommand(0xA1); //段重定义设置,bit0:0,0->0;1,0->127;OLED_SendCommand(0xC8); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数OLED_SendCommand(0xDA); //设置COM硬件引脚配置OLED_SendCommand(0x12); //[5:4]配置
OLED_SendCommand(0x81); //对比度设置OLED_SendCommand(0xEF); //1~255;默认0X7F (亮度设置,越大越亮)OLED_SendCommand(0xD9); //设置预充电周期OLED_SendCommand(0xf1); //[3:0],PHASE 1;[7:4],PHASE 2;OLED_SendCommand(0xDB); //设置VCOMH 电压倍率OLED_SendCommand(0x30); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc;
OLED_SendCommand(0xA4); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏)OLED_SendCommand(0xA6); //设置显示方式;bit0:1,反相显示;0,正常显示OLED_SendCommand(0xAF); //开启显示
//清屏OLED_Clear( );}

http://www.dtcms.com/wzjs/137847.html

相关文章:

  • 不会代码怎么做网站亚马逊seo推广
  • 郑州市人民政府网站河南网站seo
  • 北京 网站建设公司友情链接交换源码
  • 庆阳网页设计背景短视频seo询盘获客系统
  • 怎么查看一个网站页面的seo优化情况简述如何对网站进行推广
  • 惠州做网站公司网络营销网站推广方法
  • 做淘宝客网站营销策划是做什么
  • php网站做退出的代码网站收录一键提交
  • espcms易思企业网站搜索引擎优化文献
  • 17网一起做网店广州货源网seo营销网站
  • 做类似58同城大型网站seo快速排名外包
  • 如何做网站logo 设置平滑免费网站外链推广
  • 网站死链接怎么处理百度推广投诉中心
  • 柳州网站建设22谷歌广告联盟官网
  • 杭州专业网站设计制作2022最新国际新闻10条简短
  • 手机网站建设维护协议书时事热点新闻
  • 威海高新园区建设运营有限公司网站免费申请网站
  • 北京seo代理公司seo优化排名
  • 网站建设协议 模板今日发生的重大新闻
  • 广西平台网站建设报价微博搜索引擎优化
  • 请被人做网站百度问一问付费咨询
  • 长沙网络工程学院轻松seo优化排名 快排
  • 衡水做网站多少钱注册网址在哪里注册
  • js动效网站免费招聘信息发布平台
  • 建设三轮摩托车官方网站网络营销优秀案例
  • 百度山西授权代理重庆seo教程搜索引擎优化
  • 在哪个网站做引号流最好打开百度一下
  • 南昌网站建设工作室百度引擎搜索
  • 国外公共空间设计网站免费推广seo
  • 兰州网络推广专员衡阳网站优化公司