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

做网站合成APPgoogle谷歌

做网站合成APP,google谷歌,烟台做网站优化哪家好,做网站用什么语言数据库本节实现点亮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/184252.html

相关文章:

  • 100元网站建设网站的seo
  • 天河营销型网站建设吴江网站制作
  • 8网站建设做网站免费网站流量统计
  • 中国做w7的网站厦门seo排名收费
  • 做网站排名的公司网销怎么销售的
  • 网站返回首页怎么做的好看seo报名在线咨询
  • 文本资料分享网站 建设seo优化视频教程
  • 广州智能建站模板百度指数快刷软件
  • 网站客户评价灰色行业推广渠道
  • 南康网站制作商品seo关键词优化
  • 儿童网站html模板好123上网主页
  • 台州自助建站在线咨询seo咨询茂名
  • 青岛专业做外贸网站广告联盟怎么加入
  • 中国公路建设招标网站最近新闻事件
  • 做百度网站多少钱百度教育会员
  • 珠海中企网站建设我想在百度发布信息
  • 张家港建网站费用seo高手培训
  • wordpress版权声明福州网站seo公司
  • 常德网站开发网站搜索引擎优化方案
  • 来年做哪个网站致富广州seo网站排名
  • phpweb绿色大气茶叶网站源码中国网站建设公司
  • 免费软件app下载苏州百度快速排名优化
  • wordpress批量改url插件百度seo发包工具
  • 西部数码怎么上传网站关键词挖掘网站
  • 网站建设静态代码seo顾问是什么职业
  • 利用赞赏码做网站收款商丘网络推广哪家好
  • 中国建设银行企业网站营销网络推广方式有哪些
  • 做的网站百度不收录数据分析软件哪个最好用
  • 网站建站售后服务白杨seo博客
  • 网站部分版块显示正在建设云和数据培训机构怎么样