1 / 1 0 风驰电子 STM8 开发板 2011 例程十五 这个例程是讲解一下 I2C,相信大家以前学 51 的的时候想驱动 AT24C02 的时候就是用到模拟 I2C 总线吧
在 STM8S207RB 中,是以硬件来实现 I2C 总线的,如果大家说哪一种方式来驱动 AT24C02 的话,我只能说是各有千秋
用 IO 模拟的 I2C总线的话就简单点,但速度不够快,如果是用片内的硬件 I2C 的话,程序编写有点复杂,但速度快很多
下面我主要是介绍 STM8S207RB 的硬件 I2C
2 / 10 风 驰 电 子 STM8 开 发 板 2011 大 家 可 以 参 考 STM8 寄 存 器
p df 文 档 中 的 第 246 页 至 248 页
大 家 在 看 看 我 们 风 驰 电 子 STM8 开 发 板 的 硬 件 连 接 下 面 我 们 从 主 函 数 看 起 3 / 10 风驰电子 STM8 开发板 2011 其他的初始化就不多说了,现在前面的例程都说得很清楚了,先主要是说下与I2C相关的初始化和读写 I2C_DeInit() I2C 的复位,其实设和没设都一样,因为单片机复位后它也跟着复位了
I2C_EEInit() I2C 的初始化 函数原型: 4 / 10 风驰电子 STM8 开发板 2011 I2C_Init(I2C_Speed, I2C1_SLAVE_ADDRESS7, I2C_DUTYCYCLE_2,\ I2C_ACK_CURR, I2C_ADDMODE_7BIT, Input_Clock)重点看下这个函数,这个就是 I2C 总线的初始化
设置I2C 的速度为标准的速度 100K,从地址为0xA0,快速模式 Fast mode Tlow/THigh = 2 ,当前数据位应答,7 位从地址,时钟为系统时钟
函 数 原型:void I2C_