第六周-GD32F4XX的配置和函数归纳(6)

GD32F4XX的配置和函数归纳(6)

本周看的内部集成电路总线接口(I2C)的配置情况,以及例程11。至此,大部分基础外设配置都看完了,这周稍微总结了一些可以使用的信号算法库

I2C的头文件配置

1.时钟使能

这个之前也用过很多次,只需要将外设名称放入括号就可以。I2C有0、1、2三个接口可以拿来配置。

rcu_periph_clock_enable(RCU_I2C0);

2.I2C时钟的配置

void i2c_clock_config(uint32_t i2c_periph, uint32_t clkspeed, uint32_t dutycyc)

第一个参数选取I2C,第二个参数是时钟频率,第三个参数是占空比情况。

3.地址设置

void i2c_mode_addr_config(uint32_t i2c_periph, uint32_t mode, uint32_t addformat, uint32_t addr)

第一个参数选取I2C,第二个参数选取是否采用SMBus,SMBus是I2C的一种衍生总线形式,主要用于计算机主板上的低带宽设备间通信,尤其是与电源相关的芯片。并且可用于实现动态地址分配。动态识别硬件和软件使得总线设备能够支持热插拔,无需重启系统便能即插即用。
第三个参数选取地址的比特数:I2C模块始终支持7位和10
位的地址。

4.启动和确认启动

    /* enable I2C0 */
    i2c_enable(I2C0);
    /* enable acknowledge */
    i2c_ack_config(I2C0,I2C_ACK_ENABLE);

例程

int main(void)
{   
    /* configure systick */
    systick_config();  
    /* configure LEDs */
    led_config();    
    /* configure USART */
    gd_eval_com_init(EVAL_COM0);
    printf("GD32450Z-EVAL I2C-24C02 configured....\n\r");   
    /* configure GPIO */
    gpio_config();  
    /* configure I2C */
    i2c_config(); 
    /* initialize EEPROM  */
    i2c_eeprom_init();
    printf("\r\nThe I2C0 is hardware interface ");
    printf("\r\nThe speed is %d", I2C0_SPEED);
    if(I2C_OK == i2c_24c02_test()){
        while(1){
           /* turn off all LEDs */
           gd_eval_led_off(LED1);
           gd_eval_led_off(LED2);
           gd_eval_led_off(LED3); 
           /* turn on a LED */
           led_turn_on(count%3);
           count++;
           if(count >= 3){
               count = 0;
           }
           delay_1ms(500);
        }
    }	
    /* turn on all LEDs */
    gd_eval_led_on(LED1);
    gd_eval_led_on(LED2);
    gd_eval_led_on(LED3);
    while(1);
}

在这里插入图片描述

算法库

由于很多文章都说GD32和STM32很多头文件都可以重合,所以下面找的算法库都是stm32的方法:
链接一
链接二
大致的步骤就是将库加入工程文件下,再设置工程文件,添加宏文件。后面再是在程序中使用算法库的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值