【通用-移植u8g2准备工作】在cubeide中移植u8g2到STM32的准备工作 源码获取和文件处理

不打鱼光晒网 / 2023-05-03 / 原文

网上的傻币教程都让你把不需要的函数删除

这他妈的不是沙壁吗?你删除它干吊毛啊

为什么没必要删?为什么我告诉你不能删?我就给你说三个点

1破坏了库的完整性

2太费时间

3根本就他妈的没必要,根本没必要删除,你用哪个,ide就给你编译哪个,怎么会他妈的一次性全部给你编译然后内存溢出?

4你电脑就缺这几个KB的存储容量?如果真的是这样,我建议你先删除硬盘里的"学习资料.avi"

拜托,你们是他吗的第一天用单片机吗?

槽,臭傻逼们不要制造垃圾了好吗

不管什么平台 stm 51 msp430

不管什么ide cubeide keil truestudio

都可以参考本篇

首先在github克隆项目源码到本地硬盘

复制该文件夹到工程的core目录 并改个名字,方便自己明天还能记得起来这是干毛用的文件夹,哈哈哈哈

这个文件夹里边有121个文件 包含了很多芯片的驱动,也就是名字中有_d_和芯片型号的文件

先不管这些 直接打开

u8g2_d_setup.c

 搜索关键字,比如屏幕驱动用的SSD1306,那就定位到SSD1306

这些就是屏幕的初始化函数

看好了屏幕接口和分辨率选一个对的

比如我这里选个另类的 128*32吧,反正12864网上教程都写烂了

 

 可以先用一个顺手的工具找到函数名并且折叠起来看 

 然后花了半天时间,终于找到 SSD1306 128*32的初始化函数了

 遇到不懂的,本篇教程没有的东西,那就自己查一下,反正我又不知道你会啥你不会啥子

比如

 winstar和univision

反正我只找到了winstar是华菱光电,univision没找到,估计是个外国厂家吧

反正现在也不知道屏啥情况,只知道能用,是好的,随便选一个

u8g2_Setup_ssd1306_i2c_128x32_winstar_f

 

在main.c中引入头文件

#include "u8g2.h"

 声明结构体

    u8g2_t u8g2;

 

把初始化函数贴到main。c的main函数

u8g2_Setup_ssd1306_128x32_winstar_f(u8g2_t *u8g2, const u8g2_cb_t *rotation, u8x8_msg_cb byte_cb, u8x8_msg_cb gpio_and_delay_cb)

 然后再把参数修改一下 去掉声明

 第一个参数&u8g2

第二个参数U8G2_R0

第三个参数u8x8_byte_4wire_hw_spi

第四个参数u8x8_gpio_and_delay_stm32HwspiSoftcs

第一个就是刚才声明的结构体

第二个是屏幕旋转角度,暂且选择不旋转,不合适一会再修改就好了

第三个需要自己编写的一个数据传输方式,如果需要硬件传输模式,那就要自己写

第四个是GPIO和延时啥的,u8g2需要调用这个函数实现一些功能,需要自己写 

那么,怎么写?

具体看下边