资源简介
1.划线的线段在 规定的圆内.
2.电子罗盘中指针斜率为东北天坐标系下 解算航向斜率slope
代码片段和文件信息
#include “oled.h“
#include “stdlib.h“
#include “oledfont.h“
#include “init.h“
/*---------------------- Constant / Macro Definitions -----------------------*/
#define OLED_CS PGout(8) //未接入
#define OLED_RST PGout(10)
#define OLED_RS PGout(9)
//#define OLED_WR PAout(4)
//#define OLED_RD PDout(7)
//使用4线串行接口时使用
#define OLED_SCLK PGout(12) //D0
#define OLED_SDIN PGout(11) //D1
//OLED的显存
//存放格式如下.
//[0]0 1 2 3 ... 127
//[1]0 1 2 3 ... 127
//[2]0 1 2 3 ... 127
//[3]0 1 2 3 ... 127
//[4]0 1 2 3 ... 127
//[5]0 1 2 3 ... 127
//[6]0 1 2 3 ... 127
//[7]0 1 2 3 ... 127
u8 OLED_GRAM[128][8];
//更新显存到LCD
void OLED_Refresh_Gram(void)
{
u8 in;
for(i=0;i<8;i++)
{
OLED_WR_Byte (0xb0+iOLED_CMD); //设置页地址(0~7)
OLED_WR_Byte (0x00OLED_CMD); //设置显示位置—列低地址
OLED_WR_Byte (0x10OLED_CMD); //设置显示位置—列高地址
for(n=0;n<128;n++)OLED_WR_Byte(OLED_GRAM[n][i]OLED_DATA);
}
}
#if OLED_MODE==1 //8080并口
//通过拼凑的方法向OLED输出一个8位数据
//data:要输出的数据
void OLED_Data_Out(u8 data)
{
u16 dat=data&0X0F;
GPIOC->ODR&=~(0XF<<6); //清空6~9
GPIOC->ODR|=dat<<6; //D[3:0]-->PC[9:6]
GPIO_Write(GPIOCdat<<6);
PCout(11)=(data>>4)&0X01; //D4
PBout(6)=(data>>5)&0X01; //D5
PEout(5)=(data>>6)&0X01; //D6
PEout(6)=(data>>7)&0X01; //D7
}
//向SSD1306写入一个字节。
//dat:要写入的数据/命令
//cmd:数据/命令标志 0表示命令;1表示数据;
void OLED_WR_Byte(u8 datu8 cmd)
{
OLED_Data_Out(dat);
OLED_RS=cmd;
OLED_CS=0;
OLED_WR=0;
OLED_WR=1;
OLED_CS=1;
OLED_RS=1;
}
#else
//向SSD1306写入一个字节。
//dat:要写入的数据/命令
//cmd:数据/命令标志 0表示命令;1表示数据;
void OLED_WR_Byte(u8 datu8 cmd)
{
u8 i;
OLED_RS=cmd; //写命令
OLED_CS=0;
for(i=0;i<8;i++)
{
OLED_SCLK=0;
if(dat&0x80)OLED_SDIN=1;
else OLED_SDIN=0;
OLED_SCLK=1;
dat<<=1;
}
OLED_CS=1;
OLED_RS=1;
}
#endif
//开启OLED显示
void OLED_Display_On(void)
{
OLED_WR_Byte(0X8DOLED_CMD); //SET DCDC命令
OLED_WR_Byte(0X14OLED_CMD); //DCDC ON
OLED_WR_Byte(0XAFOLED_CMD); //DISPLAY ON‘
}
//关闭OLED显示
void OLED_Display_Off(void)
{
OLED_WR_Byte(0X8DOLED_CMD); //SET DCDC命令
OLED_WR_Byte(0X10OLED_CMD); //DCDC OFF
OLED_WR_Byte(0XAEOLED_CMD); //DISPLAY OFF
}
//清屏函数清完屏整个屏幕是黑色的!和没点亮一样!!!
void OLED_Clear(void)
{
u8 in;
for(i=0;i<8;i++)for(n=0;n<128;n++)OLED_GRAM[n][i]=0X00;
OLED_Refresh_Gram();//更新显示
}
//清屏函数清完屏整个屏幕是黑色的!和没点亮一样!!!
void Half_OLED_Clear(void)
{
u8 in;
for(i=0;i<8;i++)
for(n=0;n<64;n++)
OLED_GRAM[n][i]=0X00;
OLED_Refresh_Gram();//更新显示
}
//画点
//x:0~127
//y:0~63
//t:1 填充 0清空
void OLED_DrawPoint(u8 xu8 yu8 t)
{
u8 posbxtemp=0;
if(x>127||y>63)return;//超出范围了.
pos=7-y/8;
bx=y%8;
temp=1<<(7-bx);
if(t)OLED_GRAM[x][pos]|=temp;
else OLED_GRAM[x][pos]&=~temp;
}
//x1y1x2y2 填充区域的对角坐标
//确保x1<=x2;y1<=y2 0<=x1<=127 0<=y1<=63
//dot:
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9200 2019-03-22 17:29 oled.c
文件 801 2019-03-03 15:21 oled.h
文件 1421 2019-02-18 09:16 drv_oled.h
文件 9398 2019-03-04 15:51 drv_oled.c
----------- --------- ---------- ----- ----
20820 4
- 上一篇:pigz-2.3.1.tar.gz
- 下一篇:无名模块绝版开源
相关资源
- STM32F103实现OV7670摄像头显示
- LED/LED背光显示器/OLED显示屏
- 台湾悠景oled 12864 ssd1309 驱动程序 并口
- ssd1305最简测试代码
- HAL库下的OLED移植
- K60驱动OLED液晶屏程序
- 第四章 畅学多功能实验箱液晶资源详
- STM32F030C8 寄存器操作 OELD屏
- STM32+DHT11+OLED+RTC+MQ2+NRF24L01+串口12
- T12白光电烙铁
- 0.96OLED_C51系列_IIC应答_例程
- HAL库的OLED 移植
- Keil5下的STM32F407程序
- zw_OLED-STM32F4-IIC.zip
- OLED显示汉字
- ESP8266+OLED屏实现天气预报+温度显示
- 基于stm32和ad9850的dds信号源
- 基于IIC的OLED显示程序
- 基于STM32F1的OLED7线例程
- STM32单片机控制的自动浇水系统+OLED显
- 1.3寸OLED带字库全套资料及各种单片机
- 0.96寸OLED带字库全套资料包含各种单片
- oled案列和中文手册
- STM32F103驱动7针OLED128x64实现方式:硬件
- OLED程序例程(STM32_OLED(C8T6))
- OLED程序例程K60_4WIRE_SPI例程
- 基于stm32数字光强计GY-30光强采集ole
- stm32f013 OLED 屏幕和粉尘传感器串口
- 分享一个0.96的oled显示驱动,软件模拟
- STM32F103C8T6+OLED
评论
共有 条评论