[STM32F1] 大家用STM32的时候,为什么热衷于软件模拟IIC,SPI端口?

[复制链接]
19141|33
 楼主| bear1 发表于 2014-12-3 18:01 | 显示全部楼层 |阅读模式
而不用芯片上自带的硬端口,这不是浪费开发时间和资源吗?
mmuuss586 发表于 2014-12-3 19:14 | 显示全部楼层

硬件IIC,主要是ST的调试比较麻烦,花时间;
SPI的话,估计大部分人都是用硬件SPI的;
我用硬件SPI控制过8个外设;
styleno1 发表于 2014-12-3 20:19 | 显示全部楼层
不知道是不是被代表的多了,形成了误导。
我非主流地俩种都用的硬件。
zhudongpo 发表于 2014-12-3 20:40 | 显示全部楼层
SPI一直用的硬件,IIC还是模拟的
596142041 发表于 2014-12-3 21:20 | 显示全部楼层
SPI接口一直使用硬件,IIC用过,但是遇到问题一直没解决,果断用软件模拟
icecut 发表于 2014-12-3 21:44 | 显示全部楼层
看 st,iic 的一个说明.如果 iic 死了,应该怎么办...这个办法太复杂.所以很少人用.

原因是某一天,**的 iic 协议升级了,支持多 master,于是好多厂商被坑了,然后用户又被坑了....
 楼主| bear1 发表于 2014-12-3 21:50 来自手机 | 显示全部楼层
icecut 发表于 2014-12-3 21:44
看 st,iic 的一个说明.如果 iic 死了,应该怎么办...这个办法太复杂.所以很少人用.

原因是某一天,**的 iic  ...

怎么有*号,某一天 是哪一天?
没看明白。
明月小厨 发表于 2014-12-4 10:19 | 显示全部楼层
本帖最后由 明月小厨 于 2014-12-4 10:21 编辑

STM32F1XX系列的I2C有错误;所以用I2C硬件去实现的时候,出现的异常,很难排除;可是ST一直不承认。好象STM8也有这个问题。
但ST后续的一些产品中,申明了I2C部分进行了全新的设计。(没有问题为何要重新设计?);我被它坑的极惨。损失极大!

浪费很多的时间来查问题所在,结论是用IO端口模拟I2C的通讯正常;用硬件模块自动处理,行不通!

它不是摆设,是陷阱!
王七七 发表于 2014-12-4 10:30 | 显示全部楼层
spi用硬件的 比较方便,不用模拟时序。
icecut 发表于 2014-12-4 11:18 | 显示全部楼层
bear1 发表于 2014-12-3 21:50
怎么有*号,某一天 是哪一天?
没看明白。

星号是骂人被屏蔽了.

某一天不重要,现在的芯片包括 msp430,都是复杂的 iic,支持多 master 的.从设备可以拉死 clk 阻止主设备启动
 楼主| bear1 发表于 2014-12-4 11:31 | 显示全部楼层
icecut 发表于 2014-12-4 11:18
星号是骂人被屏蔽了.

某一天不重要,现在的芯片包括 msp430,都是复杂的 iic,支持多 master 的.从设备可以 ...

也就是说 支持“复杂的iic”的芯片,用硬iic都会有问题,是吗?
mcu5i51 发表于 2014-12-4 14:35 | 显示全部楼层
武断了
NE5532 发表于 2014-12-4 16:19 | 显示全部楼层
用硬I2C最好用中断,不然判断起来东西太多了,还有ST的I2C确实做得有点弱智了,很多操作,让你做你就做,把结果返给我就可以了,它自己却要干预流程,关你P事啊。
icecut 发表于 2014-12-4 17:31 | 显示全部楼层
bear1 发表于 2014-12-4 11:31
也就是说 支持“复杂的iic”的芯片,用硬iic都会有问题,是吗?

用起来都麻烦.大家都不愿意用.已经成了惯例了.有很多不需要处理的东西,软件都要处理.
通宵敲代码 发表于 2014-12-4 18:04 | 显示全部楼层
萝卜白菜各有所爱!
能解决问题才行!
cool_coder 发表于 2014-12-4 21:14 | 显示全部楼层
SPI和I2C我都用的硬接口,I2C用起来就是麻烦,不过到目前为止,还没有发现不稳定。
 楼主| bear1 发表于 2014-12-4 21:31 来自手机 | 显示全部楼层
cool_coder 发表于 2014-12-4 21:14
SPI和I2C我都用的硬接口,I2C用起来就是麻烦,不过到目前为止,还没有发现不稳定。 ...

iic是用 中断的吗?
cool_coder 发表于 2014-12-4 21:34 | 显示全部楼层
bear1 发表于 2014-12-4 21:31
iic是用 中断的吗?

用中断和DMA配合,并且和数据量有关,有点麻烦
wangzhihai1986 发表于 2014-12-4 22:35 | 显示全部楼层
明月小厨 发表于 2014-12-4 10:19
STM32F1XX系列的I2C有错误;所以用I2C硬件去实现的时候,出现的异常,很难排除;可是ST一直不承认。好象STM ...

1系列的I2C就是不好用,不过其它系列和SPI一样好用。
摩天轮1111 发表于 2015-8-24 14:19 | 显示全部楼层
明月小厨 发表于 2014-12-4 10:19
STM32F1XX系列的I2C有错误;所以用I2C硬件去实现的时候,出现的异常,很难排除;可是ST一直不承认。好象STM ...

我也不清楚这个是怎么回事,硬件确实难调一点,不过可以肯定的一点,硬件iic网上流传的代码都是半斤八两,直接拿来估计都是跑的问题多多的,软件的就不清楚了,我没有深入研究过,硬件的我说说我的感受,甚至有时候你操作eeprom,你的硬件iic代码写的有问题他也一样能操作,换到别的器件上去就不好使了,够奇葩吧,找也找不到原因,不过十有**还是程序问题,我就遇到过,操作eeprom一切正常,操作mpu6050就不正常,最后还是代码问题,如果用硬件iic,要很深入的看明白st手册中的操作时序,不然十有**有问题,我现在的硬件iic工作的很正常,不过想不通的是软件模拟的iic,你们怎么准确控制通讯速度,比如是100kbps,还是200kbps,还是400kbps?这个怎么确定呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

970

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部