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