I2C例程的问题
发布: 2009-7-03 09:23 | 作者: sure_2011 | 来源: StmFans思蜕盟 OPELC 自由电子联盟
[i=s] 本帖最后由 sure_2011 于 2009-7-3 13:39 编辑
程序分为2步:
1. I2C1向第一个从I2C地址I2C2_SLAVE1_ADDRESS7发送数据,把I2C1 Tx_Buffer1中的数据发向I2C2,I2C2接收到的数据存放在I2C2 Rx_Buffer1中。
I2C2的第一个从地址I2C2_SLAVE1_ADDRESS7存放在I2C2 OAR1寄存器(I2C2 OAR1 register)中。传送完成后,检查传送是否正确。
2. I2C1向第二个从I2C地址I2C2_SLAVE2_ADDRESS7发送数据,把I2C1 Tx_Buffer2中的数据发向I2C2,I2C2接收到的数据存放在I2C2 Rx_Buffer3中。
I2C2的第二个从地址I2C2_SLAVE2_ADDRESS7存放在I2C2 OAR2寄存器(I2C2 OAR2 register)中。传送完成后,检查传送是否正确。
Hardware environment
====================
- Connect I2C1 SCL pin (PB.06) to I2C2 SCL pin (PB.10)
- Connect I2C1 SDA pin (PB.07) to I2C2 SDA pin (PB.11)
- Check that a pull-up resistor is connected on one I2C SDA pin
- Check that a pull-up resistor is connected on one I2C SCL pin
问题:我在调试时,经常搞的总线出问题(AFLO == 1或者BERR == 1),不知是不是上拉电阻大小引起的?有兴趣的可以试试,工程在附件里。
I2C_1.rar
(2009-07-03 09:23:48, Size: 342 KB, Downloads: 7)
程序分为2步:
1. I2C1向第一个从I2C地址I2C2_SLAVE1_ADDRESS7发送数据,把I2C1 Tx_Buffer1中的数据发向I2C2,I2C2接收到的数据存放在I2C2 Rx_Buffer1中。
I2C2的第一个从地址I2C2_SLAVE1_ADDRESS7存放在I2C2 OAR1寄存器(I2C2 OAR1 register)中。传送完成后,检查传送是否正确。
2. I2C1向第二个从I2C地址I2C2_SLAVE2_ADDRESS7发送数据,把I2C1 Tx_Buffer2中的数据发向I2C2,I2C2接收到的数据存放在I2C2 Rx_Buffer3中。
I2C2的第二个从地址I2C2_SLAVE2_ADDRESS7存放在I2C2 OAR2寄存器(I2C2 OAR2 register)中。传送完成后,检查传送是否正确。
Hardware environment
====================
- Connect I2C1 SCL pin (PB.06) to I2C2 SCL pin (PB.10)
- Connect I2C1 SDA pin (PB.07) to I2C2 SDA pin (PB.11)
- Check that a pull-up resistor is connected on one I2C SDA pin
- Check that a pull-up resistor is connected on one I2C SCL pin
问题:我在调试时,经常搞的总线出问题(AFLO == 1或者BERR == 1),不知是不是上拉电阻大小引起的?有兴趣的可以试试,工程在附件里。
