Delay_us(10);break;//Function which delays 100nscaseU8X8_MSG_DELAY_100NANO: __NOP();break;//Function to define the logic level of the I2C_CLOCK linecaseU8X8_MSG_GPIO_I2C_CLOCK:if(arg_int) IIC_OLED_SCL_HIGH();elseIIC_OLED_SCL_LOW();break;//Function to define the logic level of...
移植好U8g2图形库的STM32F407标准库工程模板,用的0.96寸OLED屏(SSD1306),用硬件IIC驱动。花了一...
GPIO_Init(IIC_GPIO_Port, &GPIO_InitStructure); } 如果是SPI接口,则初始化对应的SPI接口即可。 2.2.2 u8x8_gpio_and_delay 这个函数也需要自己写,主要的修改包括: 赋予U8g2相应的延时函数,比如下面的delay_ms和delay_us 为U8g2提供IIC接口的高低电平调用: U8X8_MSG_GPIO_I2C_CLOCK:IIC的SCL U8X8_MSG_...
U8X8_MSG_GPIO_I2C_DATA:IIC的SDA 代码语言:javascript 复制 uint8_tu8x8_gpio_and_delay(u8x8_t*u8x8,uint8_t msg,uint8_t arg_int,void*arg_ptr){switch(msg){caseU8X8_MSG_DELAY_100NANO:// delay arg_int * 100 nano seconds__NOP();break;caseU8X8_MSG_DELAY_10MICRO:// delay arg_int ...
由于我的OLED是IIC接口,只留一个本次要用到的u8g2_Setup_ssd1306_i2c_128x64_noname_f就好(如果是SPI接口,需要使用u8g2_Setup_ssd1306_128x64_noname_f这个函数),其它的可以删掉或注释掉。 #include "u8g2.h" /* ssd1306 f */ voidu8g2_Setup_ssd1306_i2c_128x64_noname_f(u8g2_t*u8g2,cons...
【【开源】U8g2移植STM32保姆级讲解,保证能听得懂,模拟IIC ssd1306】 https://www.bilibili.com/video/BV16x4y1A7sE/ U8G2官方GitHub链接:https://github.com/olikraus/u8g2 例程中用的MCU是STM32F103ZET6,64KByteRAM,512KByteROM U8G2库非常吃资源,使用GB2312库可以吃300KByte的ROM ...
移植好U8g2图形库的STM32F407标准库工程模板,用的0.96寸OLED屏(SSD1306),用硬件IIC驱动。花了一...
回调函数是这种形式的:typedef uint8_t (*u8x8_msg_cb)(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr)。一样的,函数名字可以随意,但输入参数没错就好了。官方给出了硬件SPI和硬件IIC的模板,分别如下: extern"C"uint8_tu8x8_byte_arduino_hw_spi(u8x8_t*u8x8,uint8_t msg,uin...
由于我的OLED是IIC接口,只留一个本次要用到的u8g2_Setup_ssd1306_i2c_128x64_noname_f就好(如果是SPI接口,需要使用u8g2_Setup_ssd1306_128x64_noname_f这个函数),其它的可以删掉或注释掉。 #include"u8g2.h"/* ssd1306 f */voidu8g2_Setup_ssd1306_i2c_128x64_noname_f(u8g2_t*u8g2,const...
I2C, IIC or TWI: Inter-Integrated Circuit Bus which has two signals: Clock (SCL) and Data (SDA). 8080: A 8-Bit bus which requires 8 data lines, chip select and a write strobe signal. 6800: Another 8-Bit bus, but with a different protocol. ...