zhange
发表于 2024-5-25 08:25:19
10.添加字库
字库文件在font.h备注很清晰自己看
取模看文字教程很详细
取好了根据人家原来的样式添加到字符串数组后边
我自己添加的如下只用添加汉字就可以了 其他的作者添加好了 数字英文啥的
zhange
发表于 2024-5-25 08:25:48
吃饭完了再来{:4_168:}{:4_168:}{:4_168:}{:4_165:}{:4_165:}{:4_165:}{:4_165:}
zhange
发表于 2024-5-25 08:56:36
11.下面来获取网络天气
这里用到了8266esp01s
看实验版找找串口
再找 3.3v电压看看有没有当然有了 屏幕接的就是3.3v板子上有标注
先不和屏幕联动
连接测试下
xxkj2010
发表于 2024-5-25 09:27:38
0.96的屏有点小
小涵子爸爸
发表于 2024-5-25 10:07:43
感谢分享,最近正在研究OLED屏幕
jwd
发表于 2024-5-25 11:06:58
{:4_174:}{:4_174:}
神农鼎
发表于 2024-5-25 13:03:30
没用实验箱这边的 I2C/SPI 接口
zhange
发表于 2024-5-26 05:32:33
11.下边换为我的降龙棍子
还是不习惯用 试验箱{:5_278:}
zhange
发表于 2024-5-26 05:38:23
12.接线
打开串口3和4 3连接8266获取网络天气4把获取的信息发给电脑先不接显示屏
写程序
先来串口四 这里没模块化全在dome里 先把功能实现吧
//chuan kou4
bit busy4;
char wptr4;
char rptr4;
char buffer4 = {"5555555555\r\n"};
void Uart4Isr() interrupt 18
{
if (S4TI)
{
S4TI = 0;
busy4 = 0;
}
if (S4RI)
{
S4RI = 0;
buffer4 = S4BUF;
if(wptr4 > 14)
{
wptr4 = 14;
}
}
}
void Uart4_Init(void) //115200bps@11.0592MHz
{
S4CON = 0x10; //8位数据,可变波特率
S4CON |= 0x40; //串口4选择定时器4为波特率发生器
T4T3M |= 0x20; //定时器时钟1T模式
T4L = 0xE8; //设置定时初始值
T4H = 0xFF; //设置定时初始值
T4T3M |= 0x80; //定时器4开始计时
}
void Uart4Send(char dat)
{
while (busy4);
busy4 = 1;
S4BUF = dat;
}
void Uart4SendStr(char *p)
{
while (*p)
{
Uart4Send(*p++);
}
}
串口3
bit busy;
bit jieshou;
char fa;
unsigned int wptr;
char rptr;
char xdata buffer = {"hello wentao!\r\n"};
void Uart3Isr() interrupt 17
{
if (S3TI)
{
S3TI = 0;
busy = 0;
}
if (S3RI)
{
S3RI = 0;
buffer = S3BUF;
if(wptr > 748)
{
wptr = 748;
}
}
}
void Uart3_Init(void) //115200bps@11.0592MHz
{
S3CON = 0x10; //8位数据,可变波特率
S3CON &= 0xBF; //串口3选择定时器2为波特率发生器
AUXR |= 0x04; //定时器时钟1T模式
T2L = 0xE8; //设置定时初始值
T2H = 0xFF; //设置定时初始值
AUXR |= 0x10; //定时器2开始计时
}
void Uart3Send(char dat)
{
while (busy);
busy = 1;
S3BUF = dat;
}
void Uart3SendStr(char *p)
{
while (*p)
{
Uart3Send(*p++);
}
}
加上2个延时函数
void Delay30us(void) //@11.0592MHz
{
unsigned long edata i;
_nop_();
_nop_();
_nop_();
i = 81UL;
while (i) i--;
}
void Delay1000ms(void) //@11.0592MHz
{
unsigned long edata i;
_nop_();
_nop_();
i = 2764798UL;
while (i) i--;
}
zhange
发表于 2024-5-26 05:41:06
13.给8266发指令函数
以前写过8266esp01s连接帖子可以看我记录
void huoqutianqi(void)
{
//k780成功
Uart3SendStr("AT+RST\r\n");
Delay1000ms();
wptr=0;
Uart4SendStr(buffer);
memset(buffer,'\0', sizeof(buffer));
Uart4SendStr("01rst\r\n");
Delay1000ms();
Delay1000ms();
Delay1000ms();
Delay1000ms();
Delay1000ms();
Delay1000ms();
Delay1000ms();
Delay1000ms();
Delay1000ms();
Delay1000ms();
Uart3SendStr("AT+CIPSTART=\"TCP\",\"api.seniverse.com\",80\r\n");
Delay1000ms();
wptr=0;
Uart4SendStr(buffer);
memset(buffer,'\0', sizeof(buffer));
Uart4SendStr("02lianjie\r\n");
Delay1000ms();
Uart3SendStr("AT+CWMODE=1\r\n");
Delay1000ms();
wptr=0;
Uart4SendStr(buffer);
memset(buffer,'\0', sizeof(buffer));
Uart4SendStr("03lianjie-fuwuqi\r\n");
Delay1000ms();
Uart3SendStr("AT+CIPMODE=1\r\n"); //开启透传模式
Delay1000ms();
wptr=0;
Uart4SendStr(buffer);
memset(buffer,'\0', sizeof(buffer));
Uart4SendStr("04kaiqi-touchuan\r\n");
Delay1000ms();
Uart3SendStr("AT+CIPSEND\r\n");
Delay1000ms();
wptr=0;
Uart4SendStr(buffer);
memset(buffer,'\0', sizeof(buffer));
Uart4SendStr("05-kaishi\r\n");
Uart3SendStr("GET http://api.seniverse.com/v3/weather/daily.json?key=换成自己的&location=puyang&language=en&unit=c&start=0&days=2\r\n");
Delay1000ms();
Uart4SendStr(buffer);
Uart4SendStr("06-wangzhi\r\n");
Delay1000ms();
Delay1000ms();
Delay1000ms();
}