当前位置: 首页 > news >正文

2.7 寸 微雪墨水屏使用方法,及测试用例

(1) Paint 结构体定义

typedef struct {unsigned char *image;      // 指向图像缓存的指针int width, height;         // 当前画布的有效宽高(考虑旋转后)int rotate;                // 旋转角度(ROTATE_0, ROTATE_90, ROTATE_180, ROTATE_270)int mirror;                // 镜像模式(MIRROR_NONE, MIRROR_HORIZONTAL等)int width_memory, height_memory; // 原始宽高(用于旋转计算)int color, bgcolor;        // 前景色(BLACK=0)、背景色(WHITE=1)int pixel_bit;             // 像素位数(实际为1,但按字节操作)
} Paint;

(2) 初始化流程

  • 绑定缓存:
    paint->image = image 将绘图操作指向用户提供的 image 数组。
  • 设置尺寸:
    记录画布的原始宽高(width_memory/height_memory),并根据旋转角度调整有效宽高(width/height)。
  • 默认状态:
    初始化颜色、旋转、镜像等参数为默认值。
    这个函数,实现了以上功能。
    Paint_NewImage(Bimage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);
    (3)测试用例及显示效果
    完整流程:初始化→绘图→显示→睡眠。
uint8_t Bimage[EPD_2IN7_V2_WIDTH * EPD_2IN7_V2_HEIGHT / 8]; // 分配内存
extern PAINT Paint;
void test(void)
{//1. 创建图像缓存//uint8_t Bimage[EPD_2IN7_V2_WIDTH * EPD_2IN7_V2_HEIGHT / 8]; // 分配内存//2. 屏模块初始化EPD_2IN7_V2_Init(); // 3. 初始化绘图对象/*Paint_NewImage ,给结构体PAINT Paint赋值,即Paint_init*/Paint_NewImage(Bimage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);// 4. 设置背景为白色Paint_Clear(WHITE);// 5. 绘制文字Paint_DrawString_EN(0, 0, "***waveshare*** hello world ", &Font12, WHITE, BLACK);Paint_DrawString_EN(0, 30, "Don't doubt yourself    you are the best!       CSDN : happygrilclh", &Font16, WHITE, BLACK);Paint_DrawString_CN(0  ,80 ,"你好abc", &Font12CN, GRAY4, GRAY1);Paint_DrawString_CN(0,  100,"你好abc", &Font12CN, GRAY1, GRAY4);Paint_DrawString_CN(0, 130, "微雪电子", &Font24CN, GRAY1, GRAY4);// 6. 将图像发送到墨水屏显示EPD_2IN7_V2_Display_Base(Bimage);DEV_Delay_ms(3000);//7. 不刷新数据的时候,让屏幕睡眠,屏幕不能长时间给电EPD_2IN7_V2_Sleep();
}

在这里插入图片描述

相关文章:

  • LLM之Agent:Mem0的简介、安装和使用方法、案例应用之详细攻略
  • 《帝国时代1》游戏秘籍
  • Javase 基础加强 —— 07 File
  • 2025河南台球展/台球桌展/台球杆展/郑州台尼展会
  • 《深入探秘:从底层搭建Python微服务之FastAPI与Docker部署》
  • 系统编程day04
  • Librosa是什么?用librosa进行多人声纹对比
  • 基于stm32单片机的智能盲杖研究
  • Function Calling、MCP、A2A:解锁 AI 能力的三大核心技术对比
  • go实现钉钉三方登录
  • 获取点击点所在区域所能容纳最大连续空白矩形面积及顶点坐标需求分析及相关解决方案
  • k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件
  • 【大模型面试每日一题】Day 28:AdamW 相比 Adam 的核心改进是什么?
  • STL 标准模板库全面解析:容器、算法与迭代器的核心应用
  • Linux学习心得问题总结(三)
  • 【工具变量】上市公司企业未来主业业绩数据集(2000-2023年)
  • CMake指令:find_package()在Qt中的应用
  • Collection集合遍历的三种方法
  • 大模型应用开发之RAG
  • leetcode106.从中序与后序遍历序列构造二叉树:索引定位与递归分治的完美配合
  • 网站建设群/东莞做网站推广公司
  • 数据线厂家东莞网站建设/温岭网络推广
  • 网站面板/文案发布平台
  • 北京做网站那家好/济宁seo推广
  • 做外贸批发的网站/营销推广投放平台
  • 网站提示危险网站/做网站优化的公司