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)
     

  • 相关阅读:
    IOS应用开发版本控制工具之Versions使用,iosversions
    关于cocoapods安装与使用的总结
    Objective-c单例模式的正确写法--用dispatch 线程安全
    C语言中Static和Const关键字的的作用 -- 转
    OC中protocol、category和继承的关系--转
    iOS- NSThread/NSOperation/GCD 三种多线程技术的对比及实现 -- 转
    Object C学习笔记18-SEL,@ selector,Class,@class--转
    COPY, RETAIN, ASSIGN , READONLY , READWRITE,STRONG,WEAK,NONATOMIC整理--转
    Ubuntu下环境变量该写进哪个文件里
    python 写一个贪吃蛇游戏
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007398.html
Copyright © 2011-2022 走看看