历史上的今天
今天是:2024年09月29日(星期日)
2018年09月29日 | STM32f4---OLCD显示实验代码(02)
2018-09-29 来源:eefocus
OLED_CS=1; OLED_RS=1; OLED_RST=0;
delay_ms(100);
OLED_RST=1;
OLED_WR_Byte(0xAE,OLED_CMD); //关闭显示
OLED_WR_Byte(0xD5,OLED_CMD); //设置时钟分频因子,震荡频率
OLED_WR_Byte(80,OLED_CMD); //[3:0],分频因子;[7:4],震荡频率
OLED_WR_Byte(0xA8,OLED_CMD); //设置驱动路数
OLED_WR_Byte(0X3F,OLED_CMD); //默认0X3F(1/64)
OLED_WR_Byte(0xD3,OLED_CMD); //设置显示偏移
OLED_WR_Byte(0X00,OLED_CMD); //默认为 0
OLED_WR_Byte(0x40,OLED_CMD); //设置显示开始行 [5:0],行数.
OLED_WR_Byte(0x8D,OLED_CMD); //电荷泵设置
OLED_WR_Byte(0x14,OLED_CMD); //bit2,开启/关闭
OLED_WR_Byte(0x20,OLED_CMD); //设置内存地址模式
OLED_WR_Byte(0x02,OLED_CMD);
//[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10;
OLED_WR_Byte(0xA1,OLED_CMD); //段重定义设置,bit0:0,0->0;1,0->127;
OLED_WR_Byte(0xC0,OLED_CMD);
//设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数
OLED_WR_Byte(0xDA,OLED_CMD); //设置COM硬件引脚配置
OLED_WR_Byte(0x12,OLED_CMD); //[5:4]配置
OLED_WR_Byte(0x81,OLED_CMD); //对比度设置
OLED_WR_Byte(0xEF,OLED_CMD); //1~255;默认0X7F (亮度设置,越大越亮)
OLED_WR_Byte(0xD9,OLED_CMD); //设置预充电周期
OLED_WR_Byte(0xf1,OLED_CMD); //[3:0],PHASE 1;[7:4],PHASE 2;
OLED_WR_Byte(0xDB,OLED_CMD); //设置VCOMH 电压倍率
OLED_WR_Byte(0x30,OLED_CMD); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc;
OLED_WR_Byte(0xA4,OLED_CMD); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏)
OLED_WR_Byte(0xA6,OLED_CMD); //设置显示方式;bit0:1,反相显示;0,正常显示
OLED_WR_Byte(0xAF,OLED_CMD); //开启显示
OLED_Clear();
}
接着, 要介绍的是OLED_Refresh_Gram函数。 我们在STM32F4内部定义了一个块GRAM:u8 OLED_GRAM[128][8];此部分 GRAM对应OLED模块上的GRAM。在操作的时候,我们只要修改 STM32F4内部的GRAM就可以了,然后通过OLED_Refresh_Gram函数把 GRAM一次刷新到 OLED 的GRAM上。该函数代码如下:
//更新显存到 LCD
void OLED_Refresh_Gram(void)
{
u8 i,n;
for(i=0;i<8;i++)
{
OLED_WR_Byte (0xb0+i,OLED_CMD); //设置页地址(0~7)
OLED_WR_Byte (0x00,OLED_CMD); //设置显示位置—列低地址
OLED_WR_Byte (0x10,OLED_CMD); //设置显示位置—列高地址
for(n=0;n<128;n++)OLED_WR_Byte(OLED_GRAM[n][i],OLED_DATA);
}
}
史海拾趣
|
运算放大器TLC2262和TLC2264TLC2262和TLC2264分别是TI公司双路和四路运算放大器,两种器件可以在单电源或双电源条件下供电,从而增强了动态的范围,可以达到轨对轨输出的性能。TLC226X系列与TLC225X的微功耗和TLC227X的交流性能方面兼容。它 ...… 查看全部问答> |
|
GPIO驱动中,IO口发生中断后, 读取数据的问题. GPIO驱动中,IO口发生中断后,驱动是读IO口寄存器的一位数据,还是将IO口上的数据全部读完? 三星6410 BSP中有这样的参考代码吗? … 查看全部问答> |
|
我编译DirectX\\Directshow\\ddxclmv项目,已经加入strmiids.lib strmbase.lib ddraw.lib了,但连接时依然报错, 无法解析的外部符号 \"void __cdecl DbgLogInfo(unsigned long,unsigned long,wchar_t const *,...) 无法解析的外部符号 \"public: ...… 查看全部问答> |
|
有一亲戚在一大公司作副总,估计进去不成问题。可能就是自已是否能站住脚的问题 本人情况:C#.NET开发工程师 三年应用软件开发经验 现转通信系统开发,需要提前专握些什么技术? 职位介绍: ------------------------------------------------ ...… 查看全部问答> |
|
DeviceIoControl()如何向U盘发送SCSI命令??!! 主要是DeviceIoControl() 的第2个参数如何设置 请大家多多指教!! 那个参数是在哪个头文件中定义的呢??… 查看全部问答> |
|
问一下哪位朋友用过STM32F103RC 的片子的 我用TIM5做定时器时出错 老是跳进 void HardFaultException(void) { /* Go to infinite loop when Hard Fault exception occurs*/ while (1) { ...… 查看全部问答> |
|
Realtek瑞昱的WIFI热点实现函数和其他厂家的WIFI有些不一样,所以会造成WIFI热点打不开这种现象,通过以下方式可以解决 修改如下目录的文件,在修改时候要确保该文件目录下有RTL的CPP源程序文件,没有可以从其他平台拷贝过来或者像模组厂家要 sys ...… 查看全部问答> |
|
急求用Verilog语言实现的滑动平均的代码,还望大神不吝赐教!对于一组数据,看成一个队列,每采样得到一个新的数据就放入队列中,同时剔除队列中最开始进去的那个值,然后将这组数求平均输出!急!… 查看全部问答> |




