回炉重造STM32 CUBEMX之串口通讯问题一

解决stm32CubeMx/Ceil环境下串口接收数据异常停止的问题 阅读详情

软件:cubemx4.26.0
固件库:F1系列1.6.1,F4系列1.21.0
硬件:原子开发板STM32F103RC min板,原子开发板STM32F407ZG 探索者板 德飞莱STM32F103C8
程序参照:https://blog.youkuaiyun.com/xukao5671927/article/details/78605022
出现问题:参照上述程序用DAP下载器下载至板子上,仅有mini板的程序能正常运行,探索者板,德飞莱板串口返回是乱码。

  • 由于DAP下载器自带对芯片供电,我在使用探索者和德飞莱时都是插着DAP下载器进行下载程序和查看串口输出的。mini板我是在下载好程序后断开DAP用USB线供电。

  • 一次偶然操作:在CUBEMX中加入TIM2的PWM四个CHANNEL,并且加入占空比的设置函数。从DAP下载器插上供电,下载程序,下载完后不断开DAP下载器,直接打开mini板电源开关,串口没有反应,复位串口依然没有反应,把dap拔掉,mini板电源重新上下电,串口依然没有反应。而在这之前串口是可以正常运行的。尝试着把加入的函数全部注释掉。用DAP下载器下载,拔掉下载器。重新用USB线供电。程序依然无法运行。而后更换STLINK 下载器下载程序,由于STLINK驱动能力较弱,故始终需要插着USB线进行供电。下载完毕,开关开关。程序依然无法运行。之前这个程序在mini板上是一直可以正常运行的。(正常来说是要在CUBEMX上把TIM2 PWM CH1~4关闭后重新下载查看程序是否运行。。。但是没有,明天再试试。。)

  • 我重新在CUBEMX上生成了一个工程,同样的代码(参照的链接),用STLINK下载,重新上下电。串口输出正常。然后再打开CUBEMX的工程加入TIM2 PWM CH1~4的设置,用STLINK下载程序同样运行正常(PWM波和串口都是正常的)!!!
  • 非常的奇怪,开始怀疑是DAP下载器的问题,因为探索者和德飞莱都是直接用DAP供电和下载的,如果这样下载的方式会导致串口程序不能正常运行那就太坑了!!!

明天对探索者板和德飞莱板独立供电并且用STLINK下载。
关于怀疑的问题重新新建一个STM32F103的工程在mini上复现错误。
~希望真是这个原因吧~~
因为博主水平有限,还望各位大神不喜勿喷OTZ

USB开发实战:从《圈圈教你玩USB》到STM32现代开发全解析 USB(通用串行总线)作为一种主机中心制的总线协议,其核心在于一套严格的层次化规范体系,从物理层、链路层到应用层均有明确定义。其工作原理基于主机主动发起通信、分配带宽并管理设备枚举过程,通过描述符(如设备、配置、接口和端点描述符)来声明设备的身份与能力。这项技术的工程价值在于实现了设备的即插即用、热插拔和广泛的兼容性,成为连接嵌入式设备与主机系统最通用、最可靠的桥梁之一,广泛应用于虚拟串口(CDC)、人机接口设备(HID)、大容量存储(MSC)等场景。本文以经典教材《圈圈教你玩USB》揭示的协议本质为基石, 阅读详情

相关推荐

STM32CubeMX串口通信接收错误处理:操作指南与优化

深入讲解stm32cubemx串口通信接收中的常见错误与应对策略,结合实际开发场景优化中断处理机制,提升数据接收稳定性与系统可靠性,为嵌入式开发提供实用参考。

weixin_42511373的博客 912

关于STM32-CubeMx工程中串口无法正常发送/接收的问题解决

最近翻船了,万万在第一时间没想到串口无法正常发送数据竟然是因为CubeMX软件设置的问题。 在最近一个项目中由于物料不足,导致一批板子使用了24Mhz和8Mh两种参数的晶振,写程序时也没多想,调试阶段使用的是焊接24Mhz晶振的板子,一切功能OK,可是在将时钟配置24修改未8之后,在8Mhz的板子上竟然出现了BUG,串口无法正常发送/接收数据,首先想到的是波特率,其实也就是时钟,可是没想到竟然是...

weixin_30333885的博客 1849

AI智能体协作:构建更精准的公司破产预测模型

公司破产预测对于金融机构、投资者和监管部门等具有至关重要的意义。准确的破产预测可以帮助金融机构提前做好风险防范,避免贷款损失;投资者可以根据预测结果调整投资组合,降低投资风险;监管部门可以及时发现潜在的金融风险,采取相应的监管措施。然而,传统的公司破产预测模型往往存在精度不高的问题,无法满足实际需求。本研究的目的是利用AI智能体协作的方式,构建一个更精准的公司破产预测模型。通过将多个AI智能体的优势进行整合,充分挖掘公司财务数据、市场数据等多源数据中的信息,提高预测的准确性和可靠性。

2501_92132293的博客 1081

STM32CubeMX串口USART中断发送接收数据

上一篇文章 详细介绍了USART串口不使用中断发送接收数据 ,这篇文章 将介绍如何使用中断控制USART串口 发送接收数据。对于如何根据 CubeMX 生成 USART 的工程,可以参考我的上篇文章,也介绍了 关于生成usart.c代码的解析 :STM32Cube串口USART发送接收数据如果有不理解的可以 评论留言 也可以 私信我 ,大家一起讨论。

wuyiyu_的博客 1万+

【语音识别算法】深度学习语音识别算法与传统语音识别算法的区别、对比及联系

深度学习语音识别算法与传统语音识别算法在理论基础、实现方式、性能表现等方面存在显著区别,同时也有一些联系。下面将从几个方面详细比较这两种方法,并给出应用实例和代码示例。

weixin_51306394的博客 2567

【技术实战】SeaTunnel 实现 HTTP 到 Doris 数据同步的配置优化与问题解决

本文分享了使用SeaTunnel实现HTTP数据源到Doris数仓同步的实战经验。详细解析了从环境搭建、核心配置到生产部署的全流程,重点针对数据类型映射、分页拉取、依赖冲突等典型问题提供了解决方案,并给出了连接参数调优、错误处理等进阶优化技巧,帮助开发者构建稳定高效的数据同步管道。

gan8painter的博客 754

stm32Cubemx:串口的空闲中断和接收中断------stm32f407zgt6

介绍串口的接收中断与空闲中断,这两种中断都是在串口进行接收时可能会发生的中断。 串口接收中断即每当串口完成一次接收之后触发一次中断。在 STM32 中相应的中断处理函数为 USARTx_IRQHandler,中断回调函数为 HAL_UART_RxCpltCallback。可以通过USART 状态寄存器中的 UART_FLAG_RXNE 位判断 USART 是否发生了接收中断。串口空闲中断即每当串口接收完一帧数据后又过了一个字节的时间没有接收到任何数据则触发一次中断,中断处理函数同样为 USARTx_IRQH

xiaobai_nixi的博客 8616

ALTERA MAX10 FPGA 串口远程升级实战:从原理到烧录的避坑指南

本文详细解析了ALTERA MAX10 FPGA如何通过串口实现远程升级。文章从工程师实战经验出发,深入剖析了MAX10片内Flash的双镜像备份原理、CONFIG_SEL引脚启动机制,并重点介绍了使用On-Chip Flash IP核进行擦写操作的核心流程。同时,提供了从Quartus工程配置、RPD文件生成、串口协议设计到驱动代码编写的完整避坑指南,旨在帮助开发者稳定、高效地完成远程升级功能部署。

weixin_29197699的博客 274

STM32长时间工作后串口不能接收

STM32 长时间运行突然出现串口无法接收

weixin_43071664的博客 5129

从入门到精通|Yalmip+Cplex在电力系统中的应用(Matlab代码实现)

​ 火电成本包括运行成本、碳捕集成本,其中火电运行成本由运行维护成 本和发电煤耗成本构成,发电煤耗与其出力关系: ,F 为机组煤耗量(kg/h),P 为机组出力/MW;运行维护成本按照 0.5 倍煤耗成本考虑,碳捕集成本取决于碳排放量及碳捕集单价,火电机组相关参数如附表 1 所示,电煤价格为 700 元/t ​

weixin_46039719的博客 1553

Android 10.0 kenel中修改rom系统内部存储的大小

在10.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,由于在产品后续订单中,有些产品是出口的,但是硬件方面已经定板,时间比较仓促,所以 就需要软件方面在rom内部存储的大小方面作假,修改rom真实的大小容量,所以就需要在kenel驱动部分来修改这部分的值最好了,接下来分析下计算rom容量的 相关代码,然后做出修改

安卓兼职framework和app工程师的博客 1406

回炉重造STM32 CUBEMX之串口通讯问题三

早上使用STM32+STLINK成功在STM32F103C8T6上成功使用串口收发程序后。准备实现串口通讯+PWM波,从串口中输入相应的命令,控制固定频率的PWM波的占空比。使用的是USART1+TIM2的四个通道。 我是先写好相应的串口通讯程序,然后在CUBEMX中再配置TIM2的PWM波的生成,结果配置完后,重新编译程序,STLINK下载,发现程序无法正常运行,进入CUBEMX中把TIM2中...

seraph0321的博客 509

Nexys4DDR+OV7670实现图像灰度显示系统嵌入式

通过对硬件平台的准备、Vivado工程配置、OV7670驱动程序的编写、图像灰度处理算法的设计以及系统集成与测试,我们成功实现了一个基于嵌入式系统的图像处理应用。当系统运行时,OV7670摄像头模块将采集到的图像传输到FPGA芯片中,然后通过图像灰度处理算法将彩色图像转换为黑白图像,并在显示设备上进行显示。OV7670摄像头模块的驱动程序是实现图像采集的核心。以上代码中,我们使用了Xilinx提供的XGpio和Xil_In32函数来进行OV7670摄像头数据的读取和GPIO的初始化。OV7670驱动程序。

WangWEel的博客 338

回炉重造STM32 CUBEMX之串口通讯问题四

串口通讯+PWM波的生成和控制,遇到的坑太多。先MARK下

seraph0321的博客 1134

开源项目evo2安装教程

Evo 2 是一种先进的 DNA 语言模型,用于长上下文建模和设计。Evo 2 使用 StripedHyena 2 架构在单核苷酸分辨率下对 DNA 序列进行建模,上下文长度可达 100 万碱基对。Evo 2 使用 Savanna 进行预训练,并在 OpenGenome2 数据集上进行自回归训练,该数据集包含来自所有生命领域的 8.8 万亿个标记。

猿小白的博客 927

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

回炉重造STM32 CUBEMX之串口通讯问题二

今天用德飞莱的板子芯片是STM32C8,用STLINK下载。程序正常运行。 这个下载器真的太坑了,不知道为什么插着DAP下载器供电并且下载程序,会导致这整个工程无法正常下载到芯片中。然后拔掉用STLINK下载,也依然无法运行,整个工程像是被完全损坏了一样。。。 总结如下: 供电下载最好分开 STLINK更加靠谱 博主水平有限还请各位大神不喜勿喷~~...

seraph0321的博客 276

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

解决CUBEMX配置生成的UART无法进入中断的问题

最近使用STM32F107在进行开发,用CUBEMX配置UART作为串口和上位机通讯,然而一直无法接收到数据,调试了一个上午,硬件检查过,包括重写RX回调函数都试过了,但就是无法正常接收数据。 之后找了一个重写回调的函数,发现在执行某一个函数的时候会能接收一次中断(也就是复位后能收到一次数据进入中断),怀疑是因为HAL的bug或者cubemx生成代码有bug!进入该函数内部,最后筛选出两

arenascat的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

stm32cubemx正确配置串口后,只能发送的问题,接收不到信息的问题解决

stm32cubemx正确配置串口后,只能发送的问题,接收不到信息。在初始化的时候添加一句 rxit_ok = HAL_UART_Receive_IT(&huart1, pBuf, 1); //开启接收中断 原因分析:在定义rxit_ok的时候应该是默认为0,而 typedef enum { HAL_OK = 0x00U, HAL_ERROR = 0x01U, HAL_BUSY = 0x02U, HAL_TIMEOUT = 0x03U } HAL...

一条mcu咸鱼的博客 3890

cubeMX生成串口程序遇到的坑!!!

运行环境:system workbean +STM32芯片这是一个菜鸟小白转型cubeMX开发时遇到的故事!对于刚接触cubeMX的小白来说,想必第一个调试的外设,必然是串口吧!下面就由我讲述一下,我在转型路上遇到的坑。开启串口引脚功能后,由于需要使用到中断,所以便在NVIC选项卡中,开启了中断,想了一想,感觉没有什么问题,于是果断上程序,跑板子!(注意:如果设置了串口功能,又没有在interru...

CH的博客 1万+

STM32 cubeMX HAL库 LL库 串口死机及overrun error中断

解决串口死机的一些方法

愿诸愿得归 3626

STM32串口第一字节消失或者误码的原因和解决方案

现象:stm32复位之后串口打印的第一个字节误码或者消失。 误码多是由于端口初始化有问题。使用ST官方v3.5的标准库时,对串口输出端口进行了重复初始化。 第一字节消失是因为‘TXE’和‘TC’ 标志位复位值都是‘1’。

e1ki0lp 1万+

STM32F103串口通信踩坑实录:从CubeMX配置到Keil调试,我遇到的5个奇葩问题及解决方法

本文详细解析了STM32F103串口通信开发中的5个常见问题及解决方案,包括开发环境配置、printf重定向、中断接收数据丢失、DMA传输细节和硬件连接调试。特别针对STM32CubeMX与Keil的兼容性问题、USART中断优先级配置等关键点提供实用技巧,帮助开发者高效避坑。

weixin_42525264的博客 391

关于使用STM32CubeMx配置串口出现的一些问题

使用STM32CubeMx配置串口出现的一些问题,乱码或者printf函数不起作用

学习记录,交流学习 2464

stm32按下复位键后程序停止运行,重新上电又可以运行

stm32按下复位键后停止运行,重新上电又可以重新运行原因

wx18045623090的博客 5266

STM32CubeMX开发,解决串口DMA接受第一次接收不到数据

本次生成的串口: 使用芯片:STM32F215ZE     端口:USART3 波特率:115200 数据位:8位 校验    :无校验   第一次使用STM32CubeMX开发,本人觉得HAL库还是有些问题,本次开发搞那个串口就使用了我好多时间 本次遇到的问题:  1.串口使用CubeMX生成的工程有点问题,串口接受与发送有个互锁的问题,具体请看链接 使用链接的解决方法还是无...

保持每天的清醒 1万+

linux 串口偶校验,STM32CubeMX串口中断偶校验问题

STM32CubeMX是一款非常方便的工具软件。但是在使用时也会存在一些问题。比如,最近调试昆仑通态触摸屏与单片机的串口通讯,波特率为9600,数据位8位,偶校验,1位停止位。使用STM32CubeMx设置参数如下: 需要注意的是,STM32的数据位是包含校验位的,所以数据位要选择9位。生成代码后,添加相关的接收中断程序,参考《STM32CubeMX之串口通信》。但实际测试时,发现接收的第一个字节...

weixin_42511587的博客 525
上一篇: OPENCV3.4.1 ORB+FLANN
下一篇: 回炉重造STM32 CUBEMX之串口通讯问题二
Fulldata_Alchemist
博客等级 码龄12年 13粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值