早年一开始是NXP系列的ARM,不是因为别的,周立功的网站上有相关的资料,周立功主持了几次大规模的资料汉化;我接触ARM就是从周立功开始;那个时候编译环境也难弄;启动代码部分要花不少时间一个一个核对。为什么不用NXP,因因为有STM32的存在,NXP的LPC有些贵。(其实我对NXP的芯片印象不错,无论是51系列,还是后来的ARM,稀奇古怪的毛病印象中没有) STM32和SMT8几乎同时开始试试,那个时候STM32F0系还没有出。在此表扬一下STM8,很好用很好用;烂白菜价! 遇到啥心烦的事?这事要从SP3232说起,因为双机通讯,距离1米5左右,环境恶劣(电磁干扰非常严重),最常规的通讯自然是232;一收一发很好弄。闭着眼发,闭着眼收,一大串一大串的;试用一段时间后,发现个别SP3232爆炸了。数量不多(试产的时候数据也不多)。 上网查查看,有没有质量好的进货渠道;几番折腾发现,假货无处不在,防不胜防。因为早年的时候用NXP的器件,感觉IIC比较好用;于是决定抛弃通讯器件,直接IIC双机通讯了; 因为在网上看到有人论证,ST的IIC是多么优秀,使用起来毫无障碍,得心应手。还很好奇,抹黑ST的人都是谁? |
刚开始没想那么复杂,一大串代码就上去了,发现不对劲;于是开始瘦身,用最精简的代码进行测试;(STM8)
通讯距离1米;环境良好(还没到工作现场)。最恶心的时候,不仅仅是失败,而且需要把芯片擦除。不然一上电,对应的IO端口就出现低电平了。(这也是有人发现,为什么一直忙,IIC被占用了)
折腾到最后,改成模拟IIC通讯;用代码不停写0101;没问题了。代码长不说,还很耗时。通讯的速度:0.1KB;
模拟IIC双机通讯成了一股潮流;后来新出了STM32F0,特别说明了相关的IIC部分重新设计了;没测试过。据说STM32F1XX系列也有同样的问题;STM32F2XX好象也是,STM32F3XX(不清楚);STM32F0XX和STM4XX重新设计了IIC;
所以,有人用IIC控制一粒24CXX,然后就出来说ST的IIC是多么好,那我也无话可说。印象中当时,没有谁对控制24CXX有异议,出问题的几乎清一色是双机通讯。如果有谁在IIC双机通讯中感觉良好,可以说说。包括重新设计IIC的后续STM32F0和STM32F4;
第二件心烦的事,就是把存储区当成EEPROM使用;测试时写数据,发现,时灵时不灵,有时会写错;因为不敢大意冒险,外扩一粒SPI的存储器解决了;
第三件心烦的事,和ST的没有关系,是MDK;每次编译的时间特别长,要点上一支烟;没有什么好的办法解决,就是把编译好的某个局部模块编译成库,速度大大加快了,但如果想改某个局部,库要弄出来重新整理,很烦人。
现在用的是免费的CooCox,建立项目也很方便。不需要破解,编译的过程我觉得还不算慢。