历史上的今天
返回首页

历史上的今天

今天是:2025年08月08日(星期五)

正在发生

2019年08月08日 | STM32硬件i2c的EV卡死问题的终极解决(已通过老化测试40h)

2019-08-08 来源:eefocus

鉴于各位对于stm32的硬件i2c均存在质疑且在此处下载的所有硬件i2c程序均基于一个模板

大家对于硬件i2c的说法均在初始化上而对于发送接收程序并没有多少改动

所以我个人对这一段进行了优化,加上了超时自动跳出和标志位的动作,完美解决了硬件i2c的卡死问题

初始化

这里就是一个初始化的程序,应注意,clockspeed不应该高于100k

初始化2

这是一个初始化的顺序,应注意,i2c的初始化应在RCC和GPIO之后进行

对比1

上面这一段就是新增的程序模块,为的是对于易卡死的while循环做出限制,防止死循环。

只需将已有的程序中所有的关于硬件i2c的while循环均加上这一条就可以使用了。

此处如果在I2C1_hardware_wait_circle之内仍然没有收到EV事件的话,直接跳出循环和整个大循环,并将标志失败位置1,等待下一次进入此整个读写过程进行i2c总线的操作。这样就可以在软件上避免因为i2c总线受到了干扰而产生的不可逆转的程序卡死问题。

亲测bmp180热插拔,带其他中断,连续运转40h无事故。


自此我们相信,任何一个成熟的硬件的bug都是可以通过软件进行一定程度上的规避,而stm32的硬件i2c我们也没有理由直接放弃掉。

推荐阅读

史海拾趣

CWIND公司的发展小趣事

在电子行业的早期阶段,CWIND公司以其卓越的技术研发能力脱颖而出。公司创始人张先生带领一支由资深工程师组成的团队,针对当时市场上电子产品普遍存在的功耗高、性能不稳定等问题,进行了深入研究。经过数月的努力,他们成功研发出了一款低功耗、高性能的芯片,这款芯片在市场上迅速获得了认可,为CWIND公司打开了市场的大门。随着技术的不断迭代和更新,CWIND逐渐在电子行业中建立了自己的技术壁垒。

Davies Molding公司的发展小趣事

Davies Molding公司深知,人才是企业发展的核心动力。因此,公司高度重视团队建设与人才培养。通过建立完善的培训体系,Davies Molding公司不断提升员工的技能和素质,打造了一支高素质、专业化的团队。这支团队不仅为公司的发展提供了有力保障,还为行业的进步做出了积极贡献。

Elcoma公司的发展小趣事

随着公司业务的不断发展,Elcoma意识到要进一步拓展市场,必须与国际同行建立合作关系。他们积极寻求与全球知名电子企业的合作机会,通过技术交流和合作研发,不断提升自身的技术水平和市场竞争力。同时,Elcoma还积极参与国际电子展会和论坛,展示公司的最新技术和产品,吸引了众多国际客户的关注。这些国际合作不仅为Elcoma带来了更多的商业机会,也进一步提升了公司的国际影响力。

德丰(DEFOND)公司的发展小趣事

德丰电创科技股份有限公司(简称“德丰电创”)自1984年成立以来,从一个东莞的洪梅电器厂逐步发展为一家专业从事开关制造到电子电路模块、机电一体化集成模组等多元化产品的大型港资实业公司。公司凭借多年的产品研发和高端制造经验,以及完善的供应链管理体系,成功在家用电器、电动工具、汽车等多个市场领域占据一席之地。德丰电创的发展历程充满了不断的技术创新和市场扩张,其产品质量和服务得到了全球客户的广泛认可。

Cantherm公司的发展小趣事

随着环保意识的日益增强,Cantherm公司积极响应国家号召,将环保理念融入产品设计和生产过程中。公司研发出一系列环保型电子产品,采用可降解材料和节能技术,有效降低了产品对环境的影响。这一举措不仅提升了公司的社会形象,还为公司带来了更多的环保项目合作机会。

GE公司的发展小趣事

人才是企业发展的核心竞争力。Cantherm公司深知这一点,因此始终重视人才的引进和培养。公司不仅提供优厚的福利待遇和广阔的发展平台,还积极开展员工培训和技能提升计划。通过不断吸引和培养高素质人才,Cantherm公司逐渐建立了一支高效、专业的团队,为公司的持续发展提供了有力保障。


请注意,以上故事均为虚构,旨在展示一个电子行业中虚构公司可能遇到的发展情况。如有需要,您可以根据实际情况进行调整或补充。

问答坊 | AI 解惑

请教AT89s52的I/O口做输入输出时高低电平电压分别是多少?

AT89s52的I/O口做输入输出时高低电平电压分别是多少?…

查看全部问答>

Linux内核编译后下载启动不了

我使用的是友善之臂的mini2440光盘资料里带的2.6.29内核,自己配置后编译的映像下到板子里总是停留在那个开机界面上,请大家帮忙看一下怎么解决? …

查看全部问答>

点阵液晶驱动的问题(基于RA8835)……

小弟初识,描点函数W_DOT void __fastcall TForm1:: W_DOT(int O_X,int O_Y)   {     unsigned char i,j,dat;     unsigned int k;       j=PARA;//PARA=0x30;      ...…

查看全部问答>

请问各位如何直接打开Setting/控制面板?

我现在需要一个功能是直接打开Wince里的Settings而不是里的某一项 我试过\\Windows\\ctlpnl.exe cplmain.cpl这个命令行不行 直接运行ctlpnl.exe也不行。 跟踪了下系统的Settings是由Shell32.exe createprocess打开的 请教具体应该如何做? 谢 ...…

查看全部问答>

西安安泰测试设备有限公司

西安安泰测试设备有限公司地处西安市高新技术开发区,是一家专注于电子测试及工业测试领域仪器销售与系统集成的专业公司。   西安安泰测试设备有限公司长期致力于国防、教育、航空航天、工业电子制造、科研、电力、石油化工、计量检测等领域的测 ...…

查看全部问答>

2440 摄像头驱动DMA使用问题

我使用GPIO模拟IIC初始化OV9652 已经成功(我读出来和写入数值一致) 并且用应用程序打开摄像头驱动时候,摄像头驱动也已经能够不停的产生中断。 但是不知道怎么回事,但是图像死活不出现。——我用老的BSP 编译出NK 摄像头可以正常采集,排除了硬 ...…

查看全部问答>

关于便携式仪器的电源问题。

关于便携式仪器的电源问题:有时候会要求软件开关机,单片机和外围电路各用一个稳压模块。但是在仪器关机后在外围电路的电源上还存在残留电压。影响低功耗的设计。 这个问题主要是单片机的端口没有处理好,端口的高电平向外反灌电势,然后通过外 ...…

查看全部问答>

菜鸟求助

用IRA编译的时候出现:Fatal Error[Cp001]: Copy protection check, No valid license found for this product [24] 是什么原因呀!求解决!大家帮帮忙呀!纠结我很长时间了!想学都用不了!…

查看全部问答>

AM335x学习心得之视频PPT截图-第一讲

在学习的过程中,发现PPT中有好多的资料下载链接,就做了个截图,方便以后再次学习,下载资料用,现在将分享一下。 第一讲的内容: 在这一进,能够学到自己所需的资料可以从什么地方下载,可以了解AM335x家族芯片的各类,让大家在以后的学习过程 ...…

查看全部问答>