【GD32L233C-START】11、硬件I2C驱动0.96吋OLED

2025-04-25阅读 0热度 0
i2c ai red

0、前言

关于oled的详细驱动,可查看一文彻底了解ssd1306驱动0.96寸oled,本文使用gd32l233硬件i2c驱动。

1、关于GD32L233CCT6的I2C接口
【GD32L233C-START】11、硬件I2C驱动0.96吋OLED

可以看出有两路I2C,分别是I2C0,I2C1。

2、开发板上I2C的引脚
【GD32L233C-START】11、硬件I2C驱动0.96吋OLED

可以看出,I2C1的引脚为PB10和PB11。

3、通用引脚复用为I2C
【GD32L233C-START】11、硬件I2C驱动0.96吋OLED

可以看出,是复用功能4。

4、代码实现

(1)初始化i2c

代码语言:javascript代码运行次数:0运行复制
void I2cInit(void){    rcu_periph_clock_enable(RCU_I2C1);    rcu_periph_clock_enable(RCU_GPIOB);    gpio_af_set(GPIOB, GPIO_AF_4, GPIO_PIN_10);    gpio_af_set(GPIOB, GPIO_AF_4, GPIO_PIN_11);    gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_10);    gpio_output_options_set(GPIOB, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_10);    gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_11);    gpio_output_options_set(GPIOB, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_11);    /* configure I2C timing */    i2c_timing_config(I2C1, 0, 0x3, 0);    i2c_master_clock_config(I2C1, 0x13, 0x36);    /* configure I2C address */    i2c_address_config(I2C1, I2C_OWN_ADDRESS7, I2C_ADDFORMAT_7BITS);    /* configure slave address */    i2c_master_addressing(I2C1, I2C_SLAVE_ADDRESS7, I2C_MASTER_TRANSMIT);    /* configure number of bytes to be transferred */    i2c_transfer_byte_number_config(I2C1, 2);    /* enable I2C1 */    i2c_enable(I2C1);}
登录后复制
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策