zoukankan      html  css  js  c++  java
  • stm32中阻塞模式和非阻塞模式 in blocking mode 与 in non-blocking mode区别

    in blocking mode 与n no-blocking mode有啥区别?

    HAL_I2C_Master_Transmit与HAL_I2C_Master_Transmit_IT一个是在blocking模式一个是在no-blocking 模式

    阻塞模式和非阻塞模式......
    我的理解是:
    阻塞模式就像是一个延时函数,当这个函数没处理完那么,所有的按照流程需要执行的代码都不会被执行,要等到这个延时完成,类似 平时看书上写的LED灯闪烁,用的delay()一样..
    而非阻塞模式就像他定义的那样,一般用的是中断,执行这条语句的时候,开启相应的中断达到一定的条件才进行处理,这样不会影响到流程的执行.

    我的理解就是,阻塞就是死等,非阻塞就是中断

    可以参考

    /**
      * @brief  Sends an amount of data in non blocking mode.
      * @note   When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01),
      *         the sent data is handled as a set of u16. In this case, Size must indicate the number
      *         of u16 provided through pData.
      * @param  huart Pointer to a UART_HandleTypeDef structure that contains
      *               the configuration information for the specified UART module.
      * @param  pData Pointer to data buffer (u8 or u16 data elements).
      * @param  Size  Amount of data elements (u8 or u16) to be sent
      * @retval HAL status
      */
    HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
     

    /**
      * @brief  Sends an amount of data in blocking mode.
      * @note   When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1-M0 = 01),
      *         the sent data is handled as a set of u16. In this case, Size must indicate the number
      *         of u16 provided through pData.
      * @param  huart Pointer to a UART_HandleTypeDef structure that contains
      *               the configuration information for the specified UART module.
      * @param  pData Pointer to data buffer (u8 or u16 data elements).
      * @param  Size  Amount of data elements (u8 or u16) to be sent
      * @param  Timeout Timeout duration
      * @retval HAL status
      */
    HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
     

  • 相关阅读:
    oracle 10g 免安装客户端在windows下配置
    sql2005 sa密码
    使用windows live writer 有感
    windows xp SNMP安装包提取
    汉化groove2007
    迁移SQL server 2005 Reporting Services到SQL server 2008 Reporting Services全程截图操作指南
    foxmail 6在使用中的问题
    AGPM客户端连接不上服务器解决一例
    SpringSource Tool Suite add CloudFoundry service
    Java 之 SWing
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007398.html
Copyright © 2011-2022 走看看