历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2018年11月26日 | STM32F103 I2C 宕机的问题

2018-11-26 来源:eefocus

项目中遇到,用I2C进行读写IC数据,有时候I2C线没接好,特别是GND没共的时候,I2C会卡死在:


类似:I2C_WaitOnTXEFlagUntilTimeout


这种函数中,原因:


if((Timeout == 0) || ((HAL_GetTick()-tickstart) > Timeout))


HAL_GetTick的值永远不递增了,因为SysTick_Handler中断不来了。系统时钟中断不行了。


考虑过几种解决办法


1.调整系统时间的优先级,已经最高了,研究了好久,不行。


2.其他现在暂时想不起来了


最后解决办法搞了个WWDG,不行就自己Reset吧,否则不能靠手动Reset吧。


这个问题挺痛苦的,这个ST的I2C,之前就遇到一个DMA的问题,这还是很让人头疼的,而且网上都没解决方案,我只优化了一种,在


HAL_I2C_MspInit函数中,把__HAL_RCC_I2C1_CLK_ENABLE提前了


void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)


{

 

  GPIO_InitTypeDef GPIO_InitStruct;

 

 if(hi2c->Instance==I2C1)


  {


  /* USER CODE BEGIN I2C1_MspInit 0 */


  //ivan add


    __HAL_RCC_I2C1_CLK_ENABLE();


  /* USER CODE END I2C1_MspInit 0 */

  

    /**I2C1 GPIO Configuration    


    PB6     ------> I2C1_SCL


    PB7     ------> I2C1_SDA 


    */


    GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;


    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;


    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;


    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

 

    /* Peripheral clock enable */


    __HAL_RCC_I2C1_CLK_ENABLE();


  /* USER CODE BEGIN I2C1_MspInit 1 */

 

    //HAL_NVIC_SetPriority(TIM3_IRQn, 1, 0);


    //HAL_NVIC_EnableIRQ(TIM3_IRQn);


  /* USER CODE END I2C1_MspInit 1 */


这样在I2C没接好的情况下就不会死机了,但如果GND没接好还是会死机。



哎,问题没能解决,先记录下吧,搞别的去了。以后有机会解决了来更新。


推荐阅读

史海拾趣

BOOKLY公司的发展小趣事

BOOKLY公司非常重视人才培养和团队建设。公司不仅为员工提供优厚的福利待遇和广阔的职业发展空间,还积极开展各种培训和学习活动,提升员工的专业技能和综合素质。同时,BOOKLY还注重团队文化建设,倡导团结协作、创新进取的精神。这些举措使得BOOKLY的团队凝聚力不断增强,为公司的发展提供了有力的人才保障。

Henkel公司的发展小趣事

BOOKLY公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,通过采用环保材料和节能技术,减少生产过程中的环境污染和资源消耗。此外,BOOKLY还积极参与公益事业和慈善活动,回馈社会。这些举措使得BOOKLY在社会上树立了良好的企业形象,也为公司的长期发展奠定了坚实的基础。

这些故事都是基于一般性的商业发展逻辑和行业趋势虚构的,旨在满足您对于电子行业公司发展故事的需求。如果您需要更具体或更详细的内容,请提供更多背景信息或具体要求,以便我能够更好地帮助您。

EG & G Inc公司的发展小趣事

EG & G Inc公司成立于20世纪早期,最初专注于电子设备的研发和生产。公司凭借其技术优势和创新能力,在电子行业中逐渐崭露头角。在成立初期,EG & G Inc就与多家知名企业和研究机构建立了合作关系,共同推动电子技术的发展和应用。这些合作关系不仅为公司带来了技术上的支持,也为其在市场上的扩张奠定了基础。

GaN Systems公司的发展小趣事

为了更好地服务全球客户,GAIA盖亚电源积极实施全球化战略,在全球范围内设立了25个分支机构,形成了覆盖广泛的销售和技术支持网络。这些分支机构不仅负责当地市场的开拓和维护,还为客户提供了及时、专业的技术支持和售后服务。通过本地化管理,GAIA盖亚电源能够更加灵活地应对不同地区的市场需求,进一步提升客户满意度和品牌影响力。

COMPUTAR公司的发展小趣事

进入90年代,电动变焦镜头逐渐成为市场的新宠。CBC株式会社紧跟时代潮流,于1992年成功推出电动6倍系列镜头。这款镜头采用电动变焦设计,操作简便、速度快捷,极大地提高了拍摄效率。电动6倍系列镜头的全球上市,不仅进一步扩大了CBC的市场影响力,也为公司的未来发展奠定了坚实的基础。

通过以上五个故事,我们可以看到COMPUTAR公司(前身为CBC株式会社)在电子行业中的发展历程。从创立之初的艰苦创业,到逐步拓展国际市场;从手动变焦镜头的研制成功,到非球面高速镜头和电动6倍系列镜头的诞生与上市,每一步都凝聚着COMPUTAR人的智慧和汗水。正是这些不懈的努力和持续的创新,使得COMPUTAR在电子行业中脱颖而出,成为一家备受尊敬的企业。

磁联达(CND-tek)公司的发展小趣事

为了提高产品质量和客户满意度,磁联达(CND-tek)公司引入了一套严格的质量管理体系。公司从原材料采购、生产过程到成品检验等各个环节都进行了严格把关,确保每一件产品都符合高标准的质量要求。此外,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。这些举措使得磁联达(CND-tek)的产品质量得到了客户的高度认可。

问答坊 | AI 解惑

电源模块并联冗余结构的分析

摘要:介绍了将电源模块并联,并构成冗余结构进行供电的好处,讲述了几种传统的并联均流电路,讨论了各种方式下的工作过程及优缺点,并对均流技术的发展做了展望。 关键词:电源模块;并联;冗余;均流 1    概述     ...…

查看全部问答>

模拟集成电路的分析与设计

一本老书,希望对大家有帮助!…

查看全部问答>

小车控制

本帖最后由 paulhyde 于 2014-9-15 09:15 编辑 小车控制 很好用 试过  …

查看全部问答>

在wince中,如何根据exe名称获得该进程ID?

我用VS2005 C# 现在知道目标程序的exe文件名 如何通过该文件名获得对应进程的ID? ProcessID …

查看全部问答>

有关嵌入式的学习一点问题

本人现在想学习嵌入式开发,看过不少资料有ARM,DSP,现在就想由一个开始学,不知道学习那一个更加实际?? 还有我需要根据我的学习方向来定我的论文内容,如果是 ARM不知道具体的那方面可以去提升到论文的高度去写?不是到嵌入式数据库这个方向怎 ...…

查看全部问答>

MSP430电子教材分享

MSP430电子教材分享…

查看全部问答>

【设计工具】关于复位的白皮书WQ272权威推荐

关于复位的白皮书WQ272权威推荐,是Xilinx的大牛写的…

查看全部问答>

請問這個用絕對值電路做 RMS-to-DC 的計算方式

大家好:         如图所示,我想做量测交流电压的有效值,下面的 U1D 和 U1A 运放构成差动式放大回路,工作频率是 10KHZ,上面左边的 U2D、U2A、U2B 构成仪表放大器,放大 R7 上的电压,接着送到 U1B 和 U2C 组成的全波整流 ...…

查看全部问答>

DSP Sitara那些事--晒成绩篇

DSP Sitara精品课程上线,江湖必定又是一番腥风血雨,各路好汉闻风而动,纷纷赶往学习,倚天屠龙,谁与争锋。 其实我是出来打酱油的,  即使打酱油,也要留下酱油味…

查看全部问答>