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();
               
}

页: 1 [2] 3 4 5
查看完整版本: Ai32驱动12864显示网络天气学习记录