STM32F405 硬件I2C(SMBus)做从机与电脑通信,使用I2C中断收发

        首先I2C和SMBus是兼容的,亲测把初始化换成SMBus或者I2C都是可以通信的。

        这几天老师因为工控机上SMBus接口长得好看一点。。。。。。。所以非要我搞SMBus的通信。。。。。。。其实旁边就是UART接口,就是接线麻烦一点。

        反正他既然说了就搞呗,结果发现网上关于I2C用从机中断的资料巨少,就想着把代码po上来共享一下。

#include "IIC.h"
#include "delay.h"
#include "stm32f4xx_i2c.h"
#include "Exti.h"

//********接口定义*********************************************************//
//调用库函数将 
//程序代码如下:
//************************************************************************//

void IIC_Init(void)
{

    GPIO_InitTypeDef GPIO_InitStructure;                                              //GPIO 结构体定义
    I2C_InitTypeDef I2C_InitStructure;                                                //I2C 结构体定义
    NVIC_InitTypeDef NVIC_InitStructure;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);	                              //I2C 时钟使能
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
    //RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
    /* Configure and enable SI2CMASTER interrupt --------------------------------*/
    //RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE);
    //RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE);

    //*I2C1-模式 配置*//

    I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;          
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值