stm32开发遇到的问题及后续
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开发遇到的问题及后续相关推荐
- 判断按键值_「正点原子NANO STM32开发板资料连载」第十六章电容触摸按键实验...
1)实验平台:ALIENTEK NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十六章电容 ...
- STM32开发,串口和PC机通信(串口中断、FIFO机制),安富莱+正点原子程序合并
STM32开发,串口和PC机通信(串口中断.FIFO机制),安富莱+正点原子程序合并 1 概述 1.1 资源概述 1.2 实现功能 2 软件实现 2.1实现步骤 2.2 main()函数代码 2.3 ...
- 基于STM32开发板I²C总线通信协议浅析
基于STM32开发板I²C总线通信协议浅析 一.前言 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980 ...
- STM32开发入门及实战 (1)
本博客的编写目的: 一.自我总结,记录. 二.分享,输出,加深思考. 三.不作细致如书本般编排,尽管那样的排版很好看,但是过于耗费时间,还有很多东西没有必要说明,完全可以自己去解决,但还是尽量做好排版 ...
- STM32开发入门及实战
本博客的编写目的: 一.自我总结,记录. 二.分享,输出,加深思考. 三.不作细致如书本般编排,尽管那样的排版很好看,但是过于耗费时间,还有很多东西没有必要说明,完全可以自己去解决,但还是尽量做好排版 ...
- 基于STM32开发的CO2浓度、温湿度、气压监测系统
基于STM32开发的CO2浓度.温湿度.气压监测系统 写在开头 项目开发过程 项目要求 项目方案 MG812传感器监测CO2浓度 RSCM1700传感器监测气压值 AM1011A传感器监测温湿度 原理 ...
- stm32入门学什么板子_“蓝桥杯”嵌入式stm32开发入门(1)概述
声明:笔者绝不是给"蓝桥杯"打广告,而是笔者曾经参加过蓝桥杯嵌入式设计与开发比赛,想借此机会总结并分享自己的学习中的点点滴滴. 此系列教程将以蓝桥杯官方指定的开发板和接口板来深入浅 ...
- eclipse+gcc STM32开发环境搭建及调试
记录一下本人进行eclipse+gcc stm32开发环境的搭建过程,以便后续学习使用 参考资料如下: CubeMX+Eclipse+Jlink STM32开发环境搭建_小裘HUST的博客-CSDN博 ...
- 基于STM32开发板CAN总线通信协议浅析
基于STM32开发板CAN总线通信协议浅析 一.前言 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一 ...
最新文章
- pcm 采样率转换_44.1KHz够用吗?我们是否需要更高的采样率?
- python语音识别播放音乐_使用python语音识别播放和流式转录音频
- Shell编程基础---shell的结构、执行及变量
- python最适合做什么生意赚钱投资小_2018做什么投资小赚钱快(适合穷人做的简单生意)...
- golang 数组 最后一个_Golang 内存管理
- 新增标签 html知识,互联网常识:html5有哪些新增标签
- 《TensorFlow技术解析与实战》——1.2 什么是深度学习
- 浪潮n系列服务器指示灯_中国服务器市场,浪潮跑出,联想和华为出现衰退
- EditPlus Version 3 价格 代理商 销售价格 正版软件价格
- python对蓝牙串口库_python对串口蓝牙模块的操作
- DBSCAN聚类算法的实现
- 进入加密的QQ空间方法
- 小米mix2 原生android,小米MIX2 安卓10 原生体验 LineageOS17.1 ROOT
- Vue项目中应用“策略模式”
- Python爬虫爬取微信朋友圈的方法,感兴趣的朋友可以了解下
- 《九日集训》打卡第二天
- 脑电波技术的前途光明吗?
- 微信小程序页面之间传参,发表说说
- VMware Workstation player16 虚拟机添加usb无线网卡
- YC中国创始人陆奇:人工智能时代,芯片和底层软件基本都要重做