我用的是STM32F103芯片。
问题:
代码中,使用FSMC时,
1、软件模拟I2C主机发数据是OK的,但是硬件I2C1从机就会不应答。
2、硬件I2C1主机也不OK。
即,使用FSMC时,硬件I2C1作为主机和从机都会有问题。
原因如下:
stm32勘误手册指南上写道:
从stm32f103的数据手册上可以看出:I2C1_SDA和FSMC_NADV共用同一个引脚,即PB7。
而勘误表上说,当使用FSMC功能时,NADV被配置成复用输出,该信号会被默认地置位为‘1’,因此,使用硬件I2C时,没有办法把I2C1_SDA信号拉低。体现在硬件I2C从机上就是,从机无法应答。如图,在第9个时钟时,SDA一直是高电平,从机无法拉低该信号,即从机无应答。