在项目中我想通过非阻塞的方式接收发送一段来自串口的数据,于是使用了HAL_UART_Receive_IT函数,但跑起来发现只能收发一次,再次收发超时接收不到。网上使劲搜但没搜到啥有用的结果,那只能自己捣鼓了。一开始怀疑是硬件的问题,运行Debug,发现只能清除一次,只能在while(1)里运行清除数据了。

/* USER CODE BEGIN 0 */
    #define LED_ON() HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET)
    #define LED_OFF() HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET)

uint8_t Tx_str1[] = "hello  word!\r\n";
    uint8_t Tx_str2[] = "LED1  Open!\r\n";
    uint8_t Tx_str3[] = "LED1  Closed!\r\n";
    uint8_t Rx_dat = 0;
    
    void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
    {
        if(huart->Instance==USART1)
        {
            if(Rx_dat==0xa1)
            {
                LED_ON();
                HAL_UART_Transmit(&huart1,Tx_str2,sizeof(Tx_str2),100);
            }
            else if(Rx_dat==0xa2)
            {
                LED_OFF();
                HAL_UART_Transmit(&huart1,Tx_str3,sizeof(Tx_str3),100);
            }
        }
    }
    
/* USER CODE END 0 */

 while (1)
  {
        HAL_UART_Receive_IT(&huart1,&Rx_dat,1);              //清除数据
    /* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */ 希望对有需求的人们有帮助,如有错误请批评指正。

STM32CubeMX-HAL库-UART串口接收中断回调函数只能收发一次原因及解决方案相关推荐

  1. STM32 HAL库 UART 串口读写功能笔记

    https://www.cnblogs.com/Mysterious/p/4804188.html STM32L0 HAL库 UART 串口读写功能 串口发送功能: uint8_t TxData[10 ...

  2. STM32cube HAL库 UART串口中断方式收发任意长度 调试笔记

    STM32Cube对于新项目的开发能节省不少时间,从繁琐芯片初始化中解脱出来 1.STM32 UART初始化部分,配置好工程,采用STM32cube生成代码,初始化即已经完成. 2.串口中断方式的发动 ...

  3. STM32CubeMX HAL库和串口屏通信卡死问题解决

    现象:在进行串口屏通信时不定时地出现动作卡死现象,比如按钮没反应,数据不执行. 解决方法1:     在main.c里增加串口错误中断 __HAL_UART_ENABLE_IT(&huart2 ...

  4. HAL库的串口基础学习(包含串口接收不定长数据的实现)

    HAL库的串口基础学习(1) HAL库有一个特点就是对于许多外设的初始化以及功能操作,都提供有一个weak版本的函数,这是充分的展现出库名字的含义(Hardware Abstraction Layer ...

  5. 【STM32cubeMX+HAL库】US100超声波模块原理篇

    [STM32cubeMX+HAL库]US100超声波模块的使用 1.原理简介 US-100超声波测距模块可实现2cm4.5m的非接触测距功能,拥有2.45.5V的宽电压输入范围,静态功耗低于2mA,自 ...

  6. STM32学习笔记-SMT32使用HAL库UART中断方式使用

    目录 1.引言 2.配置 3.流程 1.引言 近来需要使用蓝牙模块,再了解到蓝牙模块等无线模块许多使用串口透传,便决定在研究一下串口UART 的使用方法. 由于用的板子种类每次都不一样,有F103 有 ...

  7. RTX5 | 消息队列04 - (实战技巧)串口中断回调函数ISR同步线程

    文章目录 一.前言 二.实验目的 三.API 3.2.osMessageQueueGet 四.代码 4.1.main.h 4.2.stm32f1xx.it.c 4.3.main.c 五.Event R ...

  8. STM32CubeMX | HAL库的ADC多通道数据采集(轮训、DMA、DMA+TIM)、读取内部传感器温度

    STM32CubeMX | HAL库的ADC多通道数据采集(轮训.DMA.DMA+TIM).读取内部传感器温度 目录 STM32CubeMX | HAL库的ADC多通道数据采集(轮训.DMA.DMA+ ...

  9. gcc编译-hal库-stm32f4xx串口IAP升级

    gcc编译-hal库-stm32f4xx串口IAP升级 gcc编译hal库方式实现STM32F4系列芯片IAP升级 1.Bootloader程序: 调用iap_load_app函数即可,输入参数为ap ...

最新文章

  1. OpenERP Web开发
  2. SAP推出SAP Digital Boardroom
  3. windows右键没有显示“文本文档”的解决办法(建议用方法二)
  4. Python 编码风格参考
  5. 【DP】【线段树】基站选址(luogu 2605/金牌导航 数据结构优化DP-2)
  6. 2021年中国银发经济洞察报告
  7. 2019年最流行的七大编程语言:学习编程,你会选择哪一种语言呢?
  8. 数据结构(十一)桶排序
  9. 03.swoole学习笔记--web服务器
  10. 董明珠为什么做不好手机?
  11. GitHub 标星 11000+,阿里开源的微服务组件如何连续 10 年扛住双十一大促?
  12. android的opencv调试,Android opencv 2.3.1 调试及应用(第一篇)
  13. 【微信小程序】微信小程序接口数据加密、解密算法
  14. Knime 发送邮件
  15. 因果推断与因果性学习研究进展
  16. 基于 钉钉认证 通过 华为、H3C 结合 OpenPortal认证计费系统 实现 网络准入 钉钉授权 实名认证
  17. 最简单的方法更新黑苹果macOS教程
  18. [Jquery]天气接口简单使用
  19. 重庆公需科目快速看视频方法自动学习 python
  20. David P.Williams论文系列 基于间隙度的声呐图像快速无监督海底特征描述

热门文章

  1. vue 自动px单位自动转换rem
  2. PCI相关(2)- PCI桥与配置
  3. 前谷歌员工推Cuil 获3300万风投对战老东家
  4. Vue2.0 饿了么报错: Unexpected side effect in lis tShow computed property
  5. 【SPOJ-TSHOW1】Amusing numbers【二进制】
  6. 5.2 node实现简单登录功能
  7. mysql 存储数据时,报错Cause: java.sql.SQLException: Incorrect string value: '\xF4\x80\xB3\x81\xE8\xAE...'
  8. 我和世界杯的‘恩怨情仇’
  9. 计算机硬件有问题怎么办,我电脑发现网络硬件配置存在问题,需要修复怎么办...
  10. 并发编程(一)多线程基础和原理