STM32开发问题记录

HAL库开发,问题罗列以及后续排查简单记录(仅适用于个人)


文章目录

  • STM32开发问题记录
  • 一、uart
    • ==1.1 问题:==
    • ==1.2 问题:==
    • ==1.3 问题:==
  • 二、freertos+fatfs+sdio
    • ==2.1 问题:==
    • ==2.2 问题:串口接受数据异常==

一、uart

1.1 问题:

打印正常,但是加入接收中断后,开始出bug,最后锁定接收中断挂掉了(备注


原因: HAL库的串口接收发送函数有bug,就是收发同时进行的时候,会出现锁死的现象
解决: 需要注释掉 HAL_UART_Receive_IT 和 HAL_UART_Transmit_IT 中的 __HAL_LOCK(huart) 函数。或者不要在接收里面,每接收到一个字符就printf一下。

1.2 问题:

在接收中断中使用HAL_UART_Receive_IT()函数,会导致CR1的RXNEIE 置0,最后一直处于错误状态,无法进行接收。


解决 注释掉 HAL_UART_Receive_IT 中的 HAL_LOCK(huart) 函数

1.3 问题:

串口接收一个字节之后就不会再进入中断了;


==原因:==我是单字符接收就会触发中断,需要在接收回调函数里重新开启中断接收。(HAL库在触发中断时会有一个取出的操作且中断清零,因此回调函数需要再次开启中断继续接收后面没取完的字符)
解决在HAL_UART_RxCpltCallback(UART_HandleTypeDef huart)函数中调用HAL_UART_Receive_IT*(&huart1, &RxBuffer, 1);再次开启中断接收;

二、freertos+fatfs+sdio

2.1 问题:

没有加freertos时候,sd卡读写正常;加上freertos时候,mout成功,但read等其他操作返回错误3 not ready

解决: sdio和sddma的中断优先级要小于freertos的最小优先级

2.2 问题:串口接受数据异常

串口以DMA方式接受数据;但是收不到数据;
解决: 串口接收数据的任务优先级低于主任务,故经常被打断;接受数据异常;


欢迎指正


stm32开发遇到的问题及后续相关推荐

  1. 判断按键值_「正点原子NANO STM32开发板资料连载」第十六章电容触摸按键实验...

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十六章电容 ...

  2. STM32开发,串口和PC机通信(串口中断、FIFO机制),安富莱+正点原子程序合并

    STM32开发,串口和PC机通信(串口中断.FIFO机制),安富莱+正点原子程序合并 1 概述 1.1 资源概述 1.2 实现功能 2 软件实现 2.1实现步骤 2.2 main()函数代码 2.3 ...

  3. 基于STM32开发板I²C总线通信协议浅析

    基于STM32开发板I²C总线通信协议浅析 一.前言 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980 ...

  4. STM32开发入门及实战 (1)

    本博客的编写目的: 一.自我总结,记录. 二.分享,输出,加深思考. 三.不作细致如书本般编排,尽管那样的排版很好看,但是过于耗费时间,还有很多东西没有必要说明,完全可以自己去解决,但还是尽量做好排版 ...

  5. STM32开发入门及实战

    本博客的编写目的: 一.自我总结,记录. 二.分享,输出,加深思考. 三.不作细致如书本般编排,尽管那样的排版很好看,但是过于耗费时间,还有很多东西没有必要说明,完全可以自己去解决,但还是尽量做好排版 ...

  6. 基于STM32开发的CO2浓度、温湿度、气压监测系统

    基于STM32开发的CO2浓度.温湿度.气压监测系统 写在开头 项目开发过程 项目要求 项目方案 MG812传感器监测CO2浓度 RSCM1700传感器监测气压值 AM1011A传感器监测温湿度 原理 ...

  7. stm32入门学什么板子_“蓝桥杯”嵌入式stm32开发入门(1)概述

    声明:笔者绝不是给"蓝桥杯"打广告,而是笔者曾经参加过蓝桥杯嵌入式设计与开发比赛,想借此机会总结并分享自己的学习中的点点滴滴. 此系列教程将以蓝桥杯官方指定的开发板和接口板来深入浅 ...

  8. eclipse+gcc STM32开发环境搭建及调试

    记录一下本人进行eclipse+gcc stm32开发环境的搭建过程,以便后续学习使用 参考资料如下: CubeMX+Eclipse+Jlink STM32开发环境搭建_小裘HUST的博客-CSDN博 ...

  9. 基于STM32开发板CAN总线通信协议浅析

    基于STM32开发板CAN总线通信协议浅析 一.前言 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一 ...

最新文章

  1. pcm 采样率转换_44.1KHz够用吗?我们是否需要更高的采样率?
  2. python语音识别播放音乐_使用python语音识别播放和流式转录音频
  3. Shell编程基础---shell的结构、执行及变量
  4. python最适合做什么生意赚钱投资小_2018做什么投资小赚钱快(适合穷人做的简单生意)...
  5. golang 数组 最后一个_Golang 内存管理
  6. 新增标签 html知识,互联网常识:html5有哪些新增标签
  7. 《TensorFlow技术解析与实战》——1.2 什么是深度学习
  8. 浪潮n系列服务器指示灯_中国服务器市场,浪潮跑出,联想和华为出现衰退
  9. EditPlus Version 3 价格 代理商 销售价格 正版软件价格
  10. python对蓝牙串口库_python对串口蓝牙模块的操作
  11. DBSCAN聚类算法的实现
  12. 进入加密的QQ空间方法
  13. 小米mix2 原生android,小米MIX2 安卓10 原生体验 LineageOS17.1 ROOT
  14. Vue项目中应用“策略模式”
  15. Python爬虫爬取微信朋友圈的方法,感兴趣的朋友可以了解下
  16. 《九日集训》打卡第二天
  17. 脑电波技术的前途光明吗?
  18. 微信小程序页面之间传参,发表说说
  19. VMware Workstation player16 虚拟机添加usb无线网卡
  20. YC中国创始人陆奇:人工智能时代,芯片和底层软件基本都要重做

热门文章

  1. 【c】C语言编程写的一个http下载程序
  2. 2021-09-10 网安实验-XCTF真题实战之密码学
  3. 本地电脑连接阿里云RDS Mysql数据库问题(10038错误)
  4. 如何展示舞台灯光秀的艺术表现力
  5. command: robot --argumentfile
  6. 【论文笔记】高维基因数据中的特征选择
  7. word标题前面存在竖线
  8. 阅读 redis 源码,学习缓存淘汰算法 W-TinyLFU
  9. my read_exchange rate
  10. Tensorflow物体检测(Object Detection)