pdlr.net
当前位置:首页 >> stm32 iiC 缺陷 >>

stm32 iiC 缺陷

一般情况下,那些所谓的BUG,我们是不会使用到的,除非特殊情形下,但官方也给出相应的解决方案。 STM32F10x_硬件I2C读写EEPROM(标准外设库版本): http://blog.csdn.net/ybhuangfugui/article/details/52175621

这个是STM32的一个bug。 它只在特定的一小段时间内读外设的ACK信号,一旦错过了ack信号,后面所有的时序都乱了。 ST建议所有涉及I2C的程序都采用DMA方式。 搞得我十分蛋疼,最后干脆直接用SPI的外设算了,速度还快。

硬件IIC只能接到它固定的管脚上,而且好像只有一两组,另外IO固定有时画板不好布线,有一定的局限性; 模拟I2C随便两个IO口就可以用了,另外同样的代码移值到其他类型的MCU上很方便,重新绑下IO口的就可以了。

,你什么时候到来,也不知道,你在哪个路口出现。想硬件去寻找,又怕自己迷茫,想这样等待,

我也是用STM32F103系列的片子 反正我得IIC是没有调试通过的,后面我还是使用了IO模拟IIC总线的方式 呵呵 但是网上的人说是没有问题的 我也没有花很多时间去弄 因为IIC模拟其实挺好操作的

void IIC_Ack(void) { IIC_SCL=0; SDA_OUT(); Delay_Us(2); IIC_SCL=1; Delay_Us(2); IIC_SCL=0; }

不用搞这个了STM32的IIC通讯有个bug。 因为ack信号时间很短暂,一旦错过了这个短暂的ACK信号,STM32就挂了。 想用IIC的话,就用软件模拟吧。

可以看吴鉴鹰单片机开发板教程的 #include sbit HC595_sck = P0^5; sbit HC595_rck = P0^6; sbit HC595_data = P0^7; code unsigned char Data_One_Array[2] = {0x01,0x00}; code unsigned char Data_Two_Array[2] = {0x00,0x00}; void Send_Dat...

用的是硬件IIC?采用DMA方式吗?如果IIC中断优先级低被其他程序打断,IIC通讯时间延时过长而且开了错误中断,程序就会一直进错误中断

既然人家有这个功能,那么肯定能用,只不过不是很好用

网站首页 | 网站地图
All rights reserved Powered by www.pdlr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com