STM32F407 硬件IIC驱动MCP4017 数字电位器

STM32F407硬件IIC的应用驱动从机设备


前言

MCP4017是一款可以通过IIC接口进行配置的可调电位器,此电位器有128个可配值.因为项目需要我们需要使用MCP4017调节电阻值.来作为其他部分电路的外围电路部分,可在调试的时候灵活配置.


1、STM32F407的硬件IIC使用步骤

1 IIC硬件引脚接口初始化.

首先需要初始化IIC引脚的SCK 和SDA 的模式为GPIO_Mode_AF,然后需要初始化IIC的配置寄存器,此过程固件库已经帮忙封装成接口,我们只需要调用接口配置即可.我们需要深入了解底层原理,可通过STM32f407手册对照相关寄存器理解硬件电路.
void I2C3_Init(void)
{
   
   
    GPIO_InitTypeDef  GPIO_InitStructure;
    I2C_InitTypeDef I2C_InitStructure;
    RCC_ClocksTypeDef   rcc_clocks;
 
    /* GPIO Peripheral clock enable */
    RCC_AHB1PeriphClockCmd(IIC_SDA_GPIO_CLK|IIC_SCL_GPIO_CLK, ENABLE);
    /*i2c3 Peripheral clock enable */
    RCC_APB1PeriphClockCmd(IIC_CLK, ENABLE);
    
 
    /*I2C3 configuration*/
    GPIO_PinAFConfig(IIC_SDA_PORT, IIC_SDA_PINSOURCE, IIC_SDA_AF); 
    GPIO_PinAFConfig(IIC_SCL_PORT, IIC_SCL_PINSOURCE, IIC_SCL_AF);
 
    // Pc9: I2C_SDA
    GPIO_InitStructure.GPIO_Pin = IIC_SDA_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
    GPIO_Init(IIC_SDA_PORT, &GPIO_InitStructure);
 
        //PA8: I2C_SCL 
    GPIO_InitStructure.GPIO_Pin = IIC_SCL_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
    GPIO_Init(IIC_SCL_PORT, &GPIO_InitStructure);

    /* I2C Struct Initialize */
    I2C_DeInit(IIC);
    I2C_InitStructure.I2C_Mode = I2C_Mode_I2C
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值