打印
[应用相关]

stm32程序超时设计

[复制链接]
207|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
grfqq325|  楼主 | 2021-12-31 16:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
嵌入式中的超时——stm32程序超时设计

我认为:


在程序设计中,出现以下类似语句,是非常不可靠的,很有必要加入超时处理!

while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));

以下在stm32的system_stm32f10x.c文件中,判断外部晶振起振的程序。可以参考,在以后的程序中借鉴。


  #define HSE_STARTUP_TIMEOUT   ((uint16_t)0x0500) /*!< Time out for HSE start up */



使用特权

评论回复
沙发
grfqq325|  楼主 | 2021-12-31 16:53 | 只看该作者
  /* Wait till HSE is ready and if Time out is reached exit */
  do
  {
    HSEStatus = RCC->CR & RCC_CR_HSERDY;
    StartUpCounter++;  
  } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

使用特权

评论回复
板凳
grfqq325|  楼主 | 2021-12-31 16:55 | 只看该作者
I2C 读写EEPROM添加超时
    uint16_t i = 0x0fff;

使用特权

评论回复
地板
grfqq325|  楼主 | 2021-12-31 16:57 | 只看该作者
    while ((!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))&&i){i--;};

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

433

帖子

4

粉丝