文档详情

STM32系列 IIC资料总结1.pdf

发布:2017-05-26约8.02千字共8页下载文档
文本预览下载声明
STM32系列 IIC通信资料总结1 I2C STM32 GPIO I2C 的协议就不讲了,网上多的很,我们关键在于利用 的 模拟出 : I2C.h #ifndef __IIC_H #define __IIC_H #include stm32f10x_lib.h /********************************************************* - I2C 宏定义: - 软件模拟I2C时的管脚,用PC12模拟CLK,用PC11模拟SDA - 所以在应用的时候,要打开GPIOC的时钟 *********************************************************/ #define IIC_SCL_PORT GPIOC #define IIC_SCL_CLK RCC_APB2Periph_GPIOC #define IIC_SCL_PIN GPIO_Pin_12 #define IIC_SDA_PORT GPIOC #define IIC_SDA_CLK RCC_APB2Periph_GPIOC #define IIC_SDA_PIN GPIO_Pin_11 /********************************************************* - I2C宏定义: - SDA方向设置: -SDA_IN(): 此处是将SDA定义为配置为输入模式 -SDA_OUT():此处是将SDA_OUT配置为推挽输出模式 说明:这里是配置的快速写法,当然也可以用库函数初始化, 因为IIC的SDA线,即要作为输入也要作为输出。 *********************************************************/ #define SDA_IN() {GPIOC-CRH=0XFFFF0FFF;GPIOC-CRH|=812;} #define SDA_OUT() {GPIOC-CRH=0XFFFF0FFF;GPIOC-CRH|=312;} /********************************************************* - I2C宏定义: - I2C时钟操作: - Set_IIC_SCL: 此处是将SCL拉为高电平 - Clr_IIC_SCL: 此处是将SCL拉为低电平 - 说明:通过这两个宏定义就可以模拟IIC的时钟电平SCL的高低变化了 *********************************************************/ #define Set_IIC_SCL {GPIO_SetBits(IIC_SCL_PORT,IIC_SCL_PIN);} #define Clr_IIC_SCL {GPIO_ResetBits(IIC_SCL_PORT,IIC_SCL_PIN);} /********************************************************* - I2C宏定义: - I2C数据线操作: - Set_IIC_SDA: 此处是将SDA拉为高电平 - Clr_IIC_SDA: 此处是将SDA拉为低电平 - READ_SDA : 此处是读取SDA线上的位数据 - 说明:通过这两个宏定义就可以模拟IIC的数据线SDA电平的高低变化了 *********************************************************/ #define Set_IIC_SDA {GPIO_SetBits(IIC_SDA_PORT,IIC_SDA_PIN);} #define Clr_IIC_SDA {GPIO_ResetBits(IIC_SDA_PORT,IIC_SDA_PIN);} #define READ_SDA (GPIO_ReadInputDataBit(IIC_SDA_PORT, IIC_SDA_PIN)) /********************************************************* - I2C模拟操作函数的声明: *************************
显示全部
相似文档