OLED显示一张图片

1.思路:

        void Oled_Show_Image(unsigned char *image) //
{
    unsigned char i;     //-128  ~  127位
    unsigned int j;     //j要重新定义,因为要到达图片的最后一位
                                        //行 i没有问题,j有问题  i为1时,j要从128开始这样子才会刷屏
    for(i=0;i<8;i++) 
    {
        Oled_Write_Cmd(0xB0 + i);    //page0 -- page7
        
        //每个page从第0列开始
        Oled_Write_Cmd(0x00);
        Oled_Write_Cmd(0x10);
        
        //每个page从0列到127列,依次写入0,每写入数据,列地址自动偏移
        for(j = 128*i;j<(128*(i+1));j++) //列 i等于0的时候 ,j<128  //i到7的时候 i+1=8, 其实就是j<8(i+1)最后j要<128*8                         
        {
            Oled_Write_Data(image[j]);
        }
    }
        
}
 

bug: 

        code unsigned char bmpImager[]={};数组后面要加分号

效果演示:

代码:

#include "reg52.h"
#include "intrins.h"

sbit scl = P0^1;
sbit sda = P0^3;

void IIC_Start()
{
	scl = 0; //防止雪花
	sda = 1;
	scl = 1;
	_nop_(); //耗时5个微妙
	sda = 0;
	_nop_();
}
 
void IIC_Stop()
{
	scl = 0; //防止雪花
	sda = 0;
	scl = 1;
	_nop_(); //耗时5个微妙
	sda = 1;
	_nop_();
}

char IIC_ACK()
{
	char flag;
	
	sda = 1;   //就在时钟脉冲9期间释放数据线
	_nop_();
	scl = 1;
	_nop_();
	flag = sda;
	_nop_();
	scl = 0;
	_nop_();
	
	return flag;

}

void IIC_Send_Byte(char dataSend) //发送一个字节
{
	int i;
	for(i = 0 ;i<8;i++)
	{
		scl = 0;//scl 拉低,让sda做好数据准备
		sda = dataSend & 0x80;       // 1000 0000 获得datasend的最高位
		
		_nop_(); //发送数据建立的时间
		scl = 1;//scl拉高开始发送
		_nop_(); //数据发送时间
		
		scl = 0; // 发送完毕拉低
		_nop_();//
		
		dataSend = dataSend <<1;
	}
}

void Oled_Write_Cmd(char dataCmd)
{
	//1.start()
	IIC_Start();
	
	//2.写入从机地址 b0111 1000 0x78
	IIC_Send_Byte(0x78);
	//3.ACK
	IIC_ACK();
	//4.cotrol byte : (0)(0) 000000 写入命令 (0)(1) 000000写入数据
	IIC_Send_Byte(0x00);
	//5.ACK
	IIC_ACK();
	//6.写入指令/数据
	IIC_Send_Byte(dataCmd);
	//7.ACK
	IIC_ACK();
	//8.STOP
	IIC_Stop();
}

void Oled_Write_Data(char dataData)
{
	//1.start()
	IIC_Start();
	
	//2.写入从机地址 b0111 1000 0x78
	IIC_Send_Byte(0x78);
	//3.ACK
	IIC_ACK();
	//4.cotrol byte : (0)(0) 000000 写入命令 (0)(1) 000000写入数据
	IIC_Send_Byte(0x40);
	//5.ACK
	IIC_Stop();
		//6.写入指令/数据
	IIC_Send_Byte(dataData);
	//7.ACK
	IIC_ACK();
	//8.STOP
	IIC_Stop();
}



 void Oled_Init(void){
		Oled_Write_Cmd(0xAE);//--display off
		Oled_Write_Cmd(0x00);//---set low column address
		Oled_Write_Cmd(0x10);//---set high column address
		Oled_Write_Cmd(0x40);//--set start line address
		Oled_Write_Cmd(0xB0);//--set page address
		Oled_Write_Cmd(0x81); // contract control
		Oled_Write_Cmd(0xFF);//--128
		Oled_Write_Cmd(0xA1);//set segment remap
		Oled_Write_Cmd(0xA6);//--normal / reverse
		Oled_Write_Cmd(0xA8);//--set multiplex ratio(1 to 64)
		Oled_Write_Cmd(0x3F);//--1/32 duty
		Oled_Write_Cmd(0xC8);//Com scan direction
		Oled_Write_Cmd(0xD3);//-set display offset
		Oled_Write_Cmd(0x00);//
	 
		Oled_Write_Cmd(0xD5);//set osc division
		Oled_Write_Cmd(0x80);//
	 
		Oled_Write_Cmd(0xD8);//set area color mode off
		Oled_Write_Cmd(0x05);//
	 
		Oled_Write_Cmd(0xD9);//Set Pre-Charge Period
		Oled_Write_Cmd(0xF1);//
		
		Oled_Write_Cmd(0xDA);//set com pin configuartion
		Oled_Write_Cmd(0x12);//
		
		Oled_Write_Cmd(0xDB);//set Vcomh
		Oled_Write_Cmd(0x30);//
		
		Oled_Write_Cmd(0x8D);//set charge pump enable
		Oled_Write_Cmd(0x14);//
		
		Oled_Write_Cmd(0xAF);//--turn on oled panel
}

void Oled_Clear()
{
	unsigned char i,j;
	for(i = 0;i<8;i++)
	{
		Oled_Write_Cmd(0xB0 + i);	//page0 -- page7
		//每个page从第0列开始
		Oled_Write_Cmd(0x00);
		Oled_Write_Cmd(0x10);
		//每个page从0列到127列,依次写入0,每写入数据,列地址自动偏移
		for(j = 0;j<128;j++)
		{
			Oled_Write_Data(0);
		}
	}
		
}



code unsigned char bmpImager[]={
	
	/*--  调入了一幅图像:C:\Users\r7000p\Desktop\路飞.bmp  --*/
/*--  宽度x高度=128x64    128*8*8--*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0xC0,0x20,0x00,0x10,0x10,0x08,0x00,0x80,0x10,0x14,0x00,0x00,0x88,0x8C,0x8C,
0xCC,0x4C,0x2C,0x1C,0x1C,0x18,0x9C,0x98,0x10,0x20,0x00,0x04,0x40,0x10,0x80,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x90,0x10,0x10,
0xF0,0x80,0xC0,0xF0,0xB0,0x20,0x20,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0xE0,0x00,0x80,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x20,0x80,0x00,0x50,0xF0,
0x60,0xF0,0xF9,0xFB,0xFB,0x3F,0x1F,0x0E,0x06,0x0E,0x7E,0x87,0x0F,0x0F,0x3F,0x7F,
0xFF,0xDF,0x3F,0x7F,0x3F,0x7F,0xFE,0xFE,0xFE,0xFE,0xF4,0xF4,0xB0,0x60,0x20,0x21,
0x20,0x20,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF9,0x81,0x81,0xFF,
0x89,0x00,0x08,0x34,0x17,0x13,0x13,0x14,0xFC,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xC3,0x04,0x04,0x0C,0x88,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x28,0xC0,0x90,0x98,0x18,0x9C,0xFE,
0xFF,0x1F,0x03,0x07,0x00,0x00,0x42,0x42,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x03,0x04,0x03,0x41,0x40,0x01,0x13,0x0F,0x1F,0x7F,0x7F,0x7F,0x6E,0x98,0x30,
0xB8,0x28,0x60,0x80,0x02,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,
0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
0x00,0x00,0x20,0x00,0x00,0x00,0x80,0x84,0x80,0x83,0x83,0x87,0x03,0x0A,0xE0,0x00,
0x13,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x08,0x02,0x08,0x08,0x0A,0x08,
0x08,0x09,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x01,0x88,0xF0,0x88,0x01,0x00,
0x01,0x23,0x22,0x63,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x02,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x11,0x80,0x10,0x08,0x01,0x03,0x07,
0x08,0x00,0x04,0x00,0x00,0x00,0xA0,0x02,0x02,0x02,0x02,0x00,0x00,0x40,0x00,0x00,
0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x44,0x0F,0x07,0x13,0x01,0x14,
0x02,0x11,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x08,0x08,0x08,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x40,0x40,
0xC0,0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x00,0x02,0x06,0x0E,0x0E,0x1E,0x3E,0x7E,
0x7E,0x7E,0xEE,0x80,0x80,0xC0,0xC0,0x80,0x80,0xC0,0xC0,0xE0,0x00,0x20,0x40,0x60,
0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x00,
0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xE0,0xE0,
0xFF,0x80,0xFF,0xFF,0xF0,0xEC,0xDD,0xF2,0xC8,0x90,0xC0,0x80,0x80,0x00,0x80,0xC0,
0xE1,0x31,0xBC,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xC0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x38,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x39,0x26,0x27,0x27,0x3F,
0x3E,0x3F,0x3F,0x3F,0x3F,0x3F,0x37,0x3F,0x3B,0x3F,0x3F,0x3F,0x3F,0x3F,0x3E,0x3A,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

void Oled_Show_Image(unsigned char *image)
{
	unsigned char i;
	unsigned int j;
	
	for(i =0;i<8;i++)
		{
				Oled_Write_Cmd(0xB0 + i);	//page0 -- page7
				//每个page从第0列开始
				Oled_Write_Cmd(0x00);
				Oled_Write_Cmd(0x10);
				//每个page从0列到127列,依次写入0,每写入数据,列地址自动偏移
				for(j = 128*i;j<(128*(i+1));j++)
				{
					Oled_Write_Data(image[j]);
				
				}
		}

}

void main()
{
	
	
	//1.Oled初始化
	Oled_Init();
	//2.选择一个位置
	//2.1选择页寻址模式
	Oled_Write_Cmd(0x20);
	Oled_Write_Cmd(0x02);
	Oled_Clear();
	Oled_Show_Image(bmpImager);
	while(1); //程序不能退出
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/662364.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

光速进化!易天万兆光模块全面升级

易天光通信宣布10G SFP/25G SFP28系列光模块产品进行了全新升级&#xff0c;旨在为客户提供更优质、更高效、更可靠的光通信解决方案。这次升级不仅是技术的突破&#xff0c;更是对未来光通信发展趋势的深刻洞察和精准把握。 一、技术革新&#xff0c;性能卓越 本次全系列产品…

强化学习——学习笔记3

一、强化学习都有哪些分类&#xff1f; 1、基于模型与不基于模型 根据是否具有环境模型&#xff0c;强化学习算法分为两种&#xff1a;基于模型与不基于模型 基于模型的强化学习(Model-based RL)&#xff1a;可以简单的使用动态规划求解&#xff0c;任务可定义为预测和控制&am…

windows部署ollama+maxkb+vscode插件continue打造本地AI

windows部署ollamamaxkbvscode插件continue打造本地AI 前言下载ollamadocker desktopvscode插件continue 安装安装ollama设置环境变量 安装docker desktop部署maxkb容器 安装vscode插件模型搜索和推荐 前言 我采用docker运行maxkb&#xff0c;本地运行ollama形式。可能是windo…

HTTP报文

HTTP报文 报文流 HTTP报文是在HTTP引用程序之间发送的数据块&#xff0c;这些数据块以一种文本形式的元信息开头&#xff0c;这些信息描述了报文的内容和含义&#xff0c;后面跟着可选的数据部分&#xff0c;这些报文在客户端&#xff0c;服务器和代理之间流动。 报文流入源…

盘点韩语中的四字成语柯桥留学韩语学习外语培训

일석이조 一石二鸟 일거양득 一举两得 호장성세 虚张声势 새옹15857575376#지마 塞翁失马 간담상조 肝胆相照 이심전심 心心相印 동고동락 同甘共苦 외유내강 外柔内刚 입신양명 扬名立万 다다익선 多多益善 거두절미 截头去尾 일사천리 一泻千里 자유자재 自由自在 탁상공

一套saas模式云MES系统源码,基于springboot+vue.js+uniapp开发

一套saas模式云MES系统源码&#xff0c;基于springbootvue.jsuniapp开发 MES系统简介 MES系统&#xff0c;即制造执行系统&#xff08;Manufacturing Execution System&#xff09;&#xff0c;是一种面向制造企业车间执行层的生产信息化管理系统。它位于上层的企业资源规划&a…

浅谈路由器转发数据包

当路由器转发数据包时&#xff0c;它会经历一系列步骤&#xff0c;包括接收数据包、路由表查询、以及转发数据包。以下是详细的步骤描述&#xff1a; 1. 接收数据包 以太网帧到达端口&#xff1a;当一个以太网帧到达路由器的某个网络接口&#xff08;端口&#xff09;时&#…

通过Transformers用不同的采样方法生成文本

近年来&#xff0c;随着以OpenAI的ChatGPT和Meta的LLaMA为代表的基于数百万网页数据训练的大型Transformer语言模型的兴起&#xff0c;开放域语言生成领域吸引了越来越多的关注。开放域中的条件语言生成效果令人印象深刻&#xff0c;典型的例子有&#xff1a;GPT2在独角兽话题上…

Javascript 基础知识 —— 重写数组方法

1、写一个函数&#xff0c;实现深度克隆对象 const obj {name: "LIYUFAN",age: 25,career: "初级前端工程师",info: {field: ["JS", "CSS", "HTML"],framework: ["React", "Vue", "Angular"…

什么是边缘计算网关?工业方向应用有哪些?天拓四方

在数字化时代&#xff0c;信息的传输与处理变得愈发重要&#xff0c;而其中的关键节点之一便是边缘计算网关。这一先进的网络设备&#xff0c;不仅扩展了云端功能至本地边缘设备&#xff0c;还使得边缘设备能够自主、快速地响应本地事件&#xff0c;提供了低延时、低成本、隐私…

2.开发环境介绍

开发环境介绍三种&#xff1a;第一种是在线开发环境、第二种是Windows下的开发环境、第三种是Linux下的开发环境。 1.在线开发环境 2.Windows下的开发环境 用的比较多的是Devc&#xff0c;新手适合使用&#xff0c;上手快&#xff0c;简单&#xff0c;方便。 Devc使用&#x…

利用cython将.py文件编译为.pyd文件

文章目录 1. 引言2. py文件编译为pyd文件步骤2.1 环境准备2.2 准备setup.py文件2.3 进行编译 3. 测试代码 1. 引言 在实际的Python开发中&#xff0c;为了防止Python脚本源码暴露&#xff0c;常常需要对python源码文件进行加密保护&#xff0c;Python的原始文件格式为.py&…

精选10款手机必备精品APP,每一款都不容错过!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ ​1.二维码而设计的应用程序——二维码设计 二维码设计 App 是一款专为用户创建和定制二维码而设计的应用程序。该应用适用于iOS和Android平台…

PLC自动化行业的发展前景好吗?

第一先说plc的薪资&#xff1a; 整体的平均薪资还是非常可观的&#xff0c;在1.3w/月左右。 当然PLC是需要经验积累的&#xff0c;尤其需要拥有大型的系统设计经验&#xff0c;那将会在PLC以至于自动化行业都会吃的开。所以待遇是与自身的经验&#xff0c;能力&#xff0c;所在…

(函数)颠倒字符串顺序(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <string.h>//声明颠倒函数; void reverse(char a[]) {//初始化变量值&#xff1b;int i, j;char t;//循环颠倒&#xff1b;for (i 0, j strl…

富凡行是什么软件,来具体聊一聊它的详情,感兴趣的不要错过了

目前做网络项目的人很多&#xff0c;也就衍生出了很多的软件、项目、平台。接触过了很多的产品&#xff0c;感触颇深&#xff0c;确实市面上的东西差别都很大&#xff0c;有好的&#xff0c;有不好的。 我也是喜欢在网上做点副业&#xff0c;自己捣鼓一下&#xff0c;毕竟互联网…

【2024.5.29数据库MYSQL史上最详细基础学习汇总】

初识数据库 什么是数据库: DB的全称是database,即数据库的意思。数据库实际上就是一个文件集合,是一个存储数据的仓库,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作; 什么是关系型数据库(SQL)? 关系型数据库是依据关系模型来创建的…

检索字符串

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中&#xff0c;字符串对象提供了很多应用于字符串查找的方法&#xff0c;这里主要介绍以下几种方法。 &#xff08;1&#xff09;count()方…

万亿国债消防救援——北斗应急通讯设备类目推荐

近期&#xff0c;云贵川地区山火肆虐&#xff0c;山火大范围、远距离、独立密集地发生&#xff0c;给消防救援带来了巨大挑战。 消防应急工作是保障人民生命财产安全的重要环节&#xff0c;它涉及到预防火灾、及时应对火灾事故以及灾后恢复等多个方面。在应对火灾、事故和其他…

Web自动化测试需要掌握那些基础技能?速速收藏!

一、WEBUI自动化背景 HONGRUAN 因为web页面经常会变化&#xff0c;所以UI自动化测试的维护成本很高。不如接口的适用面广&#xff0c;所以大部分公司会做接口自动化测试&#xff0c;但是未必会做UI自动化测试&#xff1b; UI自动化测试要做也是覆盖冒烟测试&#xff0c;不会…