畅销营销型网站建设电话,seo公司如何优化,会员网站模板,游戏网站建设免费版orangepi zero2 H616 SSD1306 OLED屏幕测试程序
orangepi zero2 配置wiringpi 库后#xff0c;突发奇想构建一个测试oled屏幕的程序#xff0c;放一个蜗牛每次移动一个像素点#xff0c;实时显示蜗牛的步数#xff0c;后面要显示其他内容在此代码上修改即可#xff0c;如…orangepi zero2 H616 SSD1306 OLED屏幕测试程序
orangepi zero2 配置wiringpi 库后突发奇想构建一个测试oled屏幕的程序放一个蜗牛每次移动一个像素点实时显示蜗牛的步数后面要显示其他内容在此代码上修改即可如此一来岂不妙哉便捷型max
测试效果展示狂飙蜗牛128 全志H616 编写SSD1306 OLED屏幕测试程序 已附源码 (orangepi zero2) 源码记着装wiringpi库
/** SSD1306 demo of block and font drawing.* by Ty * Create time2023/11/04*/
//
//#include errno.h
#include string.h
#include stdio.h
#include stdlib.h
#include time.h
#include stdint.h#include oled.h
#include font.hint oled_demo(struct display_info *disp) {int i;char buf[100]; //第一行显示内容 disp是oled设备的识别信息 oled_putstrto(disp, 0, 10, Welcome Ty demo);//使用字体1 即font1disp-font font1;//下一行显示内容 disp是oled设备的识别信息oled_putstrto(disp, 0, 20, ----Test Snail----);//使用字体1 即font2disp-font font2;//反复发送新的界面打印达到动画效果for (i0; i129; i) { //显示蜗牛爬了多少步一步一个像素点 sprintf(buf, Snail Steps: %d , i);oled_putstrto(disp, 0, 0, buf);//打印空格实时清屏蜗牛残留内存oled_putstrto(disp, 120-i, 364, );//打印移动蜗牛oled_putstrto(disp, 128-i, 364, ..);//打印空格实时清屏蚂蚁残留内存oled_putstrto(disp, 120, 56-i/2, );//打印移动蚂蚁oled_putstrto(disp, 120, 68-i/2, .);// 将要显示内容发送到oledoled_send_buffer(disp);}return 0;
}void show_error(int err, int add) {//const gchar* errmsg;//errmsg g_strerror(errno);printf(\nERROR: %i, %i\n\n, err, add);//printf(\nERROR\n);
}void show_usage(char *progname) {printf(\nUsage:\n%s I2C bus device node \n (demo:/dev/i2c-3)\n, progname);
}int main(int argc, char **argv) {int e;char filename[32];struct display_info disp;//在运行时要输入驱动文件 /dev/i2c-3缺少参数就报错if (argc 2) {show_usage(argv[0]); return -1;}memset(disp, 0, sizeof(disp));sprintf(filename, %s, argv[1]);disp.address OLED_I2C_ADDR;disp.font font2;//打开设备 并检测是否成功 disp是oled设备的识别信息e oled_open(disp, filename); if (e 0) {show_error(1, e);} else {//成功则继续执行oled显示函数 并判断是否成功 e oled_init(disp);if (e 0) {show_error(2, e);} else {//成功则继续打印start标志printf(---------start--------\n);//当打印完ole显示内容后打印end标志if (oled_demo(disp) 0)show_error(3, 777);printf(----------end---------\n);}}return 0;
}