MATLAB串口通信使STM32出现复位情况分析

news2024/11/26 19:57:38

前言

这几天,在使用matlab进行串口读取的操作,一次读几百个数据后,对数据进行操作分析,打印图片。但是遇到一个奇怪的问题,每次串口操作完毕后,STM32就会出现复位状况。


matlab串口操作

下面直接附上正常运行的代码

delete(instrfindall);
s=serial("COM3",'BaudRate',115200,"Parity","none","DataBits",8,"StopBits",1);
s.DataTerminalReady='on';   %matlab串口打开方式会控制DTR/RTS,导致复位,加上这两句
s.RequestToSend='off';
fopen(s);                    %打开串口

ii=1;
data=0;

 for t=1:5
    clc;
    re=fread(s,512,'uint8');   %读取512个无符号数
    re=re-48;              %阿斯克码转换  %数据格式为xx xx xx 13 10(前面三个各代表一个数,13是回车,后面10是换行符,例如12849 50 56 13 10for i =1:(length(re)-4)   %i只能取到这里,再后后,后面计算
        if(re(i)==-38)  %换行
            temp=[];
           while(re(i+1)~=-35) 
               i=i+1;
               temp=[temp,num2str(re(i))];  %temp将三个字符一个一个人存起来,例如128:“128”,转换为num再给data
           end
           data(ii)=str2num(temp);
           ii=ii+1;
        end
    end
 end

fclose(s);

figure
plot(data);

原因

matlab程序

在原子哥的论坛里面有讲:
ALIENTEK MiniSTM32 通过串口转usb和PC机matlab通信的问题

http://www.openedv.com/forum.php?mod=viewthread&tid=28178&highlight=mini%2B%2Bmatlab

matlab的串口打开方式,控制了DTR/RTS,导致一键下载电路控制MCU复位了。

要加上这两行:(在QT上位机中也有这样的设置)

s.DataTerminalReady='on';  %保留线路信号DTR的状态
s.RequestToSend='off';    %保存线路信号RTS状态

参考:matlab与stm32开发板(普中PZ6806L)串口通信的一个小问题

什么是DTR/RTS

数据终端准备好 DTR(Data Terminal Ready)
请求发送 RTS(Request To Send)

而STM32有一种串口下载方式。平常不怎么用:
参考:CH340下载程序时DTR和RTS的电平变化分析

当没有下载的时候,DTR和RTS为高电平。

下载程序时,一般是DTR先拉低,然后RTS再拉低,之后DTR拉高,RTS也拉高。

所以最终问题是触发了一键下载电路了:
在这里插入图片描述
这也是为什么我用自己的小板子测试没问题,是因为虽然可以用外部串口代替上面的下载电路,但是因为我有STlink(笑哭),所以根本没有对boot留下可以操作的余地,直接全部拉低了,而串口ISP下载方式是需要BOOT1=0 BOOT0=1 。

下面是我的stm32f103c6t6的核心板
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/573594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【特征选择】基于二进制蝗虫优化算法的特征选择方法(KNN分类器)【Matlab代码#29】

文章目录 【可更换其他算法,获取资源请见文章第5节:资源获取】1. 基于群智能算法的特征选择2. 二进制蝗虫优化算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【可更换其他算法,获取资源请见文章第5节:资源获取】 1. 基于群智能算…

【社区图书馆】读《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》所感

文章目录 《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》目录作者简介我的体会: AI带来的挑战和机遇是不可避免的 《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》 作者:a15a 著 贾雪丽 0xAres 张炯 主编 …

百度统计是什么?百度统计数据可以自动同步吗?

百度统计是什么? 百度统计是一款稳定、专业、安全的数据分析产品,提供数据看板、行为分析、用户管理、转化归因、营销管理、AB测试等多个板块的高阶分析能力,帮助提升客户各职能角色工作效能,以数据分析助力企业达成用户全生命周…

算法|5.快速排序相关

算法|5.快速排序相关 1.荷兰国旗问题 题意:给定一个数组arr,以arr[R]为划分值,请把arr[R]的数放在数组的左边,等于arr[R]的数放在数组的中间,大于arr[R]的数放在数组的右边,返回等于arr[R]的区间。要求额…

MSP432笔记8:定时器A_PWM驱动舵机

开发板型号:MSP432P401r 今日得以继续我的MSP432电赛速通之路,文首提供本次学习实践项目文件。 注:我笔记实践都是从原始空项目工程文件开始配置的。 有道是 —_—_—_—_— “山无重数周遭碧,花不知名分外娇” “曲…

Linux驱动入门(三)——源码下载阅读、分析和嵌入式文件系统介绍

文章目录 从内核出发获取内核源码使用Git安装内核源码使用补丁 阅读Linux内核源码Source Insight简介阅读源码 内核开发的特点无libc库抑或无标准头文件GNU C没有内存保护机制不要轻易在内核中使用浮点数容积小而固定的栈同步和并发可移植性的重要性 Linux源码分析Linux源码结构…

每日一题——用两个队列实现栈

每日一题 用两个队列实现栈 题目链接 思路 这里主要讲怎么实现出栈StackPop操作做完用两个栈实现队列,我们可能会想当然的认为,这一题也是一个主队列,一个辅助队列,当要出队时,首先判断辅助队列是否为空,…

代码线程安全

线程生命周期 synchronized synchronized会自动释放锁 synchronized同步代码块 synchronized后面括号里obj是锁对象(保证唯一);static修饰的obj对象是自定义MyThread线程类的静态成员变量,该自定义线程类所有实例共享保证锁对象唯一性;另一…

广度优先搜索

注:最近有些事所以请大家原谅 那么废话讲完了┏ (゜ω゜)☞ 目录 一:认识广搜 广度优先搜索算法的搜索步骤一般是: 二:导入 广度优先搜索一般可以回答两类问题: 三:基础应用 例题1:寻宝…

Electron 入门案例详解

目录 前言一、开发环境检查二、入门案例实现1.初始化项目2.安装electron包3.运行electron应用 三、创建第一个应用窗口1.准备页面2.创建窗口3.运行窗口 总结 前言 Electron 是一种基于 Node.js 和 Chromium 的框架,可以方便地创建跨平台的桌面应用程序。虽然 Elect…

jlink-v8刷固件及解决keil报错 j-link is defective,j-link clone

今天在调试STM32F407的程序时,下载程序时突然keil识别不到jlink了,还以为是驱动的问题,重新装了好几次驱动,结果还是不行,于是就网上找各种办法,最后决定重新刷固件。网上的方法很多,好多都失败…

Kotlin Compose Multiplatform 跨平台(Android端、桌面端)开发实践之使用 SQLDelight 将数据储存至数据库

前言 关于标题和文章主题 取标题的时候我还在想,我应该写 Compose 跨平台呢还是写 Kotlin 跨平台。 毕竟对于我的整体项目而言,确实是 Compose 跨平台开发,但是对于我这篇文章要说的东西,那其实也涉及不到多少 Compose 相关的内…

力扣sql中等篇练习(二十七)

力扣sql中等篇练习(二十七) 1 连续两年有3个及以上订单的产品 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # Write your MySQL query statement below WITH T as (SELECT t.product_id,t.d,count(order_id) numFROM(SELECT order_id,product_id,…

es elasticsearch 九 索引index 定制分词器 type结构后期弃用原因 定制动态映射 动态映射模板 零停机重建索引

目录 索引index 定制分词器 Type底层结构及弃用原因 定制 dynamic mapping 定制dynamic mapping template 动态映射模板 零停机重建索引 生产环境应该度别名数据 索引index Put /index Stings 分片 Mapping 映射 Aliases 别名 增加 Put my_index2 { "se…

网络安全行业在经济下行期仍然稳步增长,快抓住风口入行

根据IDC《2022年第四季度中国IT安全软件市场跟踪报告》的数据,2022年下半年中国IT安全软件市场厂商整体收入约为23.8亿美元(约合165.7亿元人民币),同比上升12.4%。结合全年数据,2022全年中国IT安全软件市场规模达到39.…

NodeJS 文件操作④

文章目录 ✨文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持😘前言NODE内置模块 FS模块 CallBack API mkdir (创建文件夹 异步) rmdir(删除文件夹 异步) rm&#…

百度爱番番的线索如何自动导入至CRM系统中?

百度爱番番是什么? 百度爱番番是应用百度强大AI能力,帮助企业实现营销数字化、自动化、智能化,为企业提供拓客、集客、管客的一站式智能解决方案,助力企业营销变得专业且智能。 百度爱番番的线索如何自动导入至CRM系统中&#xf…

MKS SERVO4257D 闭环步进电机_系列2 菜单说明

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈&am…

数据结构和算法,在Python中的实现方式

部分数据来源:ChatGPT 数据结构 在计算机科学中,数据结构指的是计算机中用来存储和组织数据的方式。数据结构是为算法服务的,同一个算法在不同的数据结构上运行效率可能会有很大的不同。这就要求我们在解决问题时要根据具体情况选择合适的数…

前端中间件Midway的使用

一、 关于midway1. 解决什么痛点2. 期望达到什么效果 二、创建应用并使用1. 创建midway应用2. 认识Midway2.1 目录结构2.2 Controller2.3 路由2.4 获取请求参数2.5 Web中间件2.6 组件使用2.7 服务(service) 三、写到最后 一、 关于midway Midway 是阿里巴巴 - 淘宝前端架构团队…