• 【SSD1306 OLED屏幕测试程序 (开源)orangepi zero2 全志H616 】.md updata: 23/11/07


    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 time:2023/11/04
     */
    //
    //
     
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    
    #include "oled.h"
    #include "font.h"
    
    int oled_demo(struct display_info *disp) {
    	int i;
    	char buf[100];	
    	
    	//第一行显示内容  disp是oled设备的识别信息	
    	oled_putstrto(disp, 0, 10, "Welcome  Ty  demo");
    	//使用字体1 即font1
    	disp->font = font1;
    
    	//下一行显示内容  disp是oled设备的识别信息
    	oled_putstrto(disp, 0, 20, "----Test Snail----");
    	//使用字体1 即font2
    	disp->font = font2;
    
    	
    	//反复发送新的界面打印,达到动画效果
    	for (i=0; i<129; i++) {	
    
    		//显示蜗牛爬了多少步,一步一个像素点;	
    		sprintf(buf, "Snail Steps: %d ", i);
    		oled_putstrto(disp, 0, 0, buf);
    		
    		//打印空格实时清屏蜗牛残留内存
    		oled_putstrto(disp, 120-i, 36+4, "       ");
    		//打印移动蜗牛
    		oled_putstrto(disp, 128-i, 36+4, "@..");
    		//打印空格实时清屏蚂蚁残留内存
    		oled_putstrto(disp, 120, 56-i/2, "       ");
    		//打印移动蚂蚁
    		oled_putstrto(disp, 120, 68-i/2, ".");
    		
    		// 将要显示内容发送到oled
    		oled_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;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
  • 相关阅读:
    页面组件化的架构设计与思考
    图书管理系统
    五金机电行业S2B2B商城系统打破传统线下营销方式,实现企业高质量发展
    差点因为算法错失腾讯offer!多亏了《程序员代码面试指南IT名企算法与数据结构题目最优解》“救了我呀”
    mysql批量插入性能优化:executeBatch如何通过rewriteBatchedStatements参数逆袭
    spring事务传播特性,即spring管理事务的策略
    ESP32-C3入门教程 IoT篇⑥——阿里云 物联网平台 EspAliYun RGB LED 实战之设备批量生产工具
    常见网页错误代码解析404、400、500、408...
    用Python插入页码到PDF文档
    vue3+vite项目在按需导入vant后, 打包构建时报错
  • 原文地址:https://blog.csdn.net/Wdf_123654/article/details/134220507