优秀甜品网站/短视频seo系统
目录
前言
一、RS485简介
什么是串口
什么是串行通信
什么是并行通信
二、接口原理
1. 连接方式
2. 差分信号
三、485通讯接口的优势
1. 接口电平低, 不易损坏芯片。
2. 传输速率高
3. 抗干扰能力强
4. 传输距离远,支持节点多。
四、常见RS485电路图
1. MAX485
2. SP3485
五、Modbus协议
Modbus与MQTT的联系
Modbus协议有三种类型
I. Modbus-TCP
II. Modbus-ASCII
III. Modbus-RTU
六、实战
rs485.h
rs485.c
I. 如果使能中断接收的话,会执行串口 2 的中断接收配置,USART2_IRQHandler()函数用于中断接收来自485总线的数据,将其存放在 RS485_RX_BUF 里面;
II. RS485_Init()是485初始化函数,完成对串口2的配置;
III. RS485_Send_Data() 和 RS485_Receive_Data() 这两个函 数用来发送数据到 485 总线和读取从485总线收到的数据首先令 rxlen=RS485_RX_CNT,记录当前接收到的字节数,随后,等待10ms,如果在这个 10ms 里面,没有接收到任何数据(RS485_RX_CNT 的值未增加),那么就说明接收完成了。如果有接收到其他数据(RS485_RX_CNT变大了),那么说明还在继续接收数据,需等到下一个循环再处理;
IV. 最后,RS485_TX_Set() 函数,用于通过 PCF8574 控制RS485_RE脚。
(* ̄︶ ̄)创作不易!期待你们的 点赞、收藏和评论喔。
前言
我们是气象水利行业,经常接触到的项目都是关于以下系统方案,其中 RS-485 是通讯中及其重要的连接方式:
其实,我们在项目中经常用到的“通信”到底是什么?
通信 = 通信协议 + 通信元素 + ...
- 通信协议
又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对 {数据格式,同步方式,传送速度,传送步骤,检纠错方式,控制字符定义,等} 问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程。
- 通信元素
信息表示、解析方法 + 信息的传输方法。
- 目前常见的串行通信接口标准有:
RS-232、RS-422、RS-485等。 另外,SPI(串行外设接口)、IIC(内置集成电路)和CAN(控制器局域网)也属于串口通信。
一、RS485简介
要了解485之前,我们需要做一下拆词分析:{串口,串行通信,并行通信,...}
什么是串口
串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。
什么是串行通信
是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
什么是并行通信
就是指数据的每一位同时在多根数据线上发送或者接收。可以以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机或PLC各种内部总线就是以并行方式传送数据的。
RS485和RS232是典型的串行通讯标准。
RS485是 美国电子工业协会(Electronic Industries Association,EIA)于1983年发布的串行通信接口标准,经通讯工业协会(TIA)修订后命名为 TIA/EIA-485-A,其中RS 是 Recommended Standard 的缩写。
EIA-485(过去叫做RS-485或者RS485)是隶属于OSI模型物理层的电气特性规定为2线、半双工、平衡传输线多点通信的标准。在线性多点总线的配置下,可以在一个网络上有多个接收器。是一种工业控制环境中常用的通讯协议,因此适用在工业环境中。
RS485是半双工异步串行通信。
二、接口原理
1. 连接方式
RS485推荐使用在点对点网络中,线型,总线型,不能是星型,环型网络。理想情况下RS485需要2个匹配电阻,其阻值要求等于传输电缆的特性阻抗(一般为120Ω)。没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪声,而且线移需要双端的电压差。没有终接电阻的话,会使得较快速的发送端产生多个数据信号的边缘,导致数据传输出错。
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线拓扑结构,
在同一总线上最多可以挂接 32 个节点。
RS485总线同IIC,也是主从模式,支持点对点单从机模式,也支持多从机模式,不支持多主机模式。
下图为RS485推荐的多设备连接方式:
- 发送数据时,串口控制器的TX引脚信号经过收发器转换成差分信号传输到总线上。
- 接收数据时,收发器把总线上的差分信号转化成 TTL信号通过RX引脚传输到串口控制器中。
串口控制器与收发器之间一般使用 TTL 信号传输,收发器与总线则使用差分信号来传输。
2. 差分信号
长距离布线会有信号衰减,而且引入噪声和干扰的可能性更大,在线缆 A 和 B 上的表现就是电压幅度的变化,但是,采用差分线的好处就是,差值相减就会忽略掉干扰依旧能输出正常的信号,把这种差分接收器忽略两条信号线上相同电压的能力称为共模抑制。
共模干扰问题:RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以。
通俗来说,就是如果在传输过程中遇到干扰,那A、B两根线的电压都会发生变化,可能本来A是5V,B是2V,被干扰成了A是8V,B是5V,但由于485通信检测的是两根线之间的电压差,所以AB间的电压差并没有发生改变,仍然是3V,所以接收器检测到的仍然是正确的信号
相反,像串口和RS232这些单端的通信方式,因为只有一根信号线+一根地线,并会规定某个电平状态表示一种逻辑,如5V表示1,0V表示0,当在传输过程中发生干扰时,5V可能变成了2V,这时候就没法判断到底是1还是0了,导致传输的数据不正确
三、485通讯接口的优势
1. 接口电平低, 不易损坏芯片。
RS485的电气特性: 逻辑“1”以两线间的电压差为+(2~6)V表示; 逻辑“0”以两线间的电压差为-(2~6)V表示。
2. 传输速率高
10米时,RS485的数据最高传输速率可达35Mbps,在1200m时,传输速度可达100Kbps。
3. 抗干扰能力强
RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。
4. 传输距离远,支持节点多。
RS485总线最长可以传输1200m以上(速率≤100Kbps)一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
四、常见RS485电路图
1. MAX485
序号 | 引脚 | 功能 |
1 | R0 | 接收器输出 |
2 | RE | 接收器输出使能(低电平有效) |
3 | DE | 驱动器输出使能(高电平有效) |
4 | DI | 驱动器输入 |
5 | GND | 连接地 |
6 | A | 驱动器输出/接收器输入(同相) |
7 | B | 驱动器输出/接收器输入(反相) |
8 | VCC | 芯片供电 |
图中A、B总线接口,用于连接485总线。RO是接收输出端,DI是发送数据收入端,RE是接收使能信号(低电平有效),DE是发送使能信号(高电平有效)。
2. SP3485
下图是:STM32F429 与 SP3485连接电路图
我们只需要配置好串口USART2,就可以实现正常的485通信了。
不管是SP3485还是MAX485它们电路都是一样的。
五、Modbus协议
是一个串行通信协议,首次出现于1979年,是连接行业设备实际使用的标准协议用于“短距离设备连接”的本地协议
Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。
一个Modbus命令包含了打算执行的设备的Modbus地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令)。所有的Modbus命令包含了检查码(crc),以确定到达的命令没有被破坏。基本的ModBus命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。
Modbus与MQTT的联系
Modbus协议有三种类型
I. Modbus-TCP
II. Modbus-ASCII
III. Modbus-RTU
帧结构 = 地址 + 功能码 + 数据 + 校验
地址 | 占用一个字节,范围0-255,其中有效范围是1-247,其他有特殊用途,比如255是广播地址(广播地址就是应答所有地址,正常的需要两个设备的地址一样才能进行查询和回复)。 |
功能 | 占用一个字节,功能码的意义就是,知道这个指令是干啥的,比如你可以查询从机的数据,也可以修改数据,所以不同功能码对应不同功能。 |
数据 | 根据功能码不同,有不同结构,在下面的实例中有说明。 |
校验 | 为了保证数据不错误,增加这个,然后再把前面的数据进行计算看数据是否一致,如果一致,就说明这帧数据是正确的,我再回复;如果不一样,说明你这个数据在传输的时候出了问题,数据不对的,所以就抛弃了。 |
- 下图为串口通讯常用的调试工具SSCOM
- 主机发送:01 03 00 00 00 01 84 0A
- 从机回复:01 03 02 19 98 B2 7E
下图为某传感器的寄存器参数
六、实战
基于STM32F429的UART2开发,我们需要 rs485.c 和 rs485.h 两个文件:
rs485.h
#ifndef __RS485_H
#define __RS485_H
#include "sys.h"
extern u8 RS485_RX_BUF[64]; //接收缓冲,最大 64 个字节
extern u8 RS485_RX_CNT; //接收到的数据长度
//如果想串口中断接收,设置 EN_USART2_RX 为 1,否则设置为 0
#define EN_USART2_RX 1 //0,不接收;1,接收.
void RS485_Init(u32 pclk2,u32 bound);
void RS485_Send_Data(u8 *buf,u8 len);
void RS485_Receive_Data(u8 *buf,u8 *len);
void RS485_TX_Set(u8 en);
#endif
rs485.c
I. 如果使能中断接收的话,会执行串口 2 的中断接收配置,USART2_IRQHandler()函数用于中断接收来自485总线的数据,将其存放在 RS485_RX_BUF 里面;
#if EN_USART2_RX
//如果使能了接收
//接收缓存区
u8 RS485_RX_BUF[64];
//接收缓冲,最大 64 个字节.
//接收到的数据长度
u8 RS485_RX_CNT=0;
void USART2_IRQHandler(void)
{u8 res; if(USART2->SR&(1<<5))//接收到数据 { res=USART2->DR; if(RS485_RX_CNT<64) { RS485_RX_BUF[RS485_RX_CNT]=res; //记录接收到的值 RS485_RX_CNT++; //接收数据增加 1 } }
}
#endif
II. RS485_Init()是485初始化函数,完成对串口2的配置;
//初始化 IO 串口 2
//pclk1:PCLK1 时钟频率(Mhz),APB1 一般为 48Mhz
//bound:波特率
void RS485_Init(u32 pclk1,u32 bound)
{ float temp; u16 mantissa; u16 fraction; temp=(float)(pclk1*1000000)/(bound*16); //得到 USARTDIV mantissa=temp; //得到整数部分 fraction=(temp-mantissa)*16; //得到小数部分 mantissa<<=4; mantissa+=fraction; PCF8574_Init(); //初始化 PCF8574,用于控制 RE 脚 RCC->AHB1ENR|=1<<0; //使能 PORTA 口时钟 GPIO_Set(GPIOA,PIN2|PIN3,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M, GPIO_PUPD_PU); //PA2,PA3,复用功能,上拉 GPIO_AF_Set(GPIOA,2,7); //PA2,AF7 GPIO_AF_Set(GPIOA,3,7); //PA3,AF7 RCC->APB1ENR|=1<<17; //使能串口 2 时钟 RCC->APB1RSTR|=1<<17; //复位串口 2 RCC->APB1RSTR&=~(1<<17); //停止复位USART2->BRR=mantissa; // 波特率设置 USART2->CR1|=0X200C; //1 位停止,无校验位.
#if EN_USART2_RX //如果使能了接收
//使能接收中断 USART2->CR1|=1<<2; //串口接收使能 USART2->CR1|=1<<5; //接收缓冲区非空中断使能 MY_NVIC_Init(3,3,USART2_IRQn,2); //组 2,最低优先级
#endif RS485_TX_Set(0); //默认设置为接收模式
}
III. RS485_Send_Data() 和 RS485_Receive_Data() 这两个函 数用来发送数据到 485 总线和读取从485总线收到的数据首先令 rxlen=RS485_RX_CNT,记录当前接收到的字节数,随后,等待10ms,如果在这个 10ms 里面,没有接收到任何数据(RS485_RX_CNT 的值未增加),那么就说明接收完成了。如果有接收到其他数据(RS485_RX_CNT变大了),那么说明还在继续接收数据,需等到下一个循环再处理;
//RS485 发送 len 个字节.
//buf:发送区首地址
//len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过 64 个字节)
void RS485_Send_Data(u8 *buf,u8 len)
{ u8 t; RS485_TX_Set(1); //设置为发送模式 for(t=0;t<len;t++) //循环发送数据 { while((USART2->SR&0X40)==0); //等待发送结束USART2->DR=buf[t]; } while((USART2->SR&0X40)==0); //等待发送结束RS485_RX_CNT=0;RS485_TX_Set(0); //设置为接收模式
}
//RS485 查询接收到的数据
//buf:接收缓存首地址
//len:读到的数据长度
void RS485_Receive_Data(u8 *buf,u8 *len)
{ u8 rxlen=RS485_RX_CNT; u8 i=0; *len=0; //默认为 0 delay_ms(10); //等待 10ms,连续超过 10ms 没有接收到一个数据,则认为接收结束 if(rxlen==RS485_RX_CNT&&rxlen) //接收到了数据,且接收完成了 { for(i=0;i<rxlen;i++) buf[i]=RS485_RX_BUF[i]; *len=RS485_RX_CNT; //记录本次数据长度 RS485_RX_CNT=0; //清零 }
}
IV. 最后,RS485_TX_Set() 函数,用于通过 PCF8574 控制RS485_RE脚。
//RS485 模式控制.
//en:0,接收;1,发送.
void RS485_TX_Set(u8 en)
{ PCF8574_WriteBit(RS485_RE_IO,en);
}
(* ̄︶ ̄)创作不易!期待你们的 点赞、收藏和评论喔。
本文来源网络,免费分享知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除!
相关文章:

【知识分享】__RS485-嵌入式常用的通信协议
目录 前言 一、RS485简介 什么是串口 什么是串行通信 什么是并行通信 二、接口原理 1. 连接方式 2. 差分信号 三、485通讯接口的优势 1. 接口电平低, 不易损坏芯片。 2. 传输速率高 3. 抗干扰能力强 4. 传输距离远,支持节点多。 四、常见…...

Qt生成动态链接库并使用动态链接库
项目结构 整个工程由一个主程序构成和一个模块构成(dll)。整个工程的结构目录如下 Define.priMyProject.proMyProject.pro.user ---bin ---MainProgrammain.cppMainProgram.proMainProgram.pro.userwidget.cppwidget.hwidget.ui ---MathDllMathDll.proMathDll.pro.userMyMath.…...

E4990A 阻抗分析仪,20 Hz 至 10/20/30/50/120 MHz
01 E4990A 阻抗分析仪 20 Hz 至 10/20/30/50/120 MHz 产品综述: E4990A 阻抗分析仪具有 20 Hz 至 120 MHz 的频率范围,可在宽阻抗范围内提供出色的 0.045%(典型值)基本准确度,并内置 40 V 直流偏置源,适…...

k8s volumes and data
Overview 传统上,容器引擎(Container Engine)不提供比容器寿命更长的存储。由于容器被认为是瞬态(transient)的,这可能会导致数据丢失或复杂的外部存储选项。Kubernetes卷共享 Pod 生命周期,而不是其中的容器。如果容器终止,数据…...

万宾科技智能水环境综合治理监测系统效果
水环境综合治理是一项旨在全面改善水环境质量的系统工程。它以水体为对象,综合考虑各种因素,通过科学规划和技术手段,解决水环境污染、生态退化等问题,核心理念是“统一规划、分步实施;标本兼治,重在治本&a…...

掌控安全 暖冬杯 CTF Writeup By AheadSec
本来结束时发到了学校AheadSec的群里面了的,觉得这比赛没啥好外发WP的,但是有些师傅来问了,所以还是发一下吧。 文章目录 Web签到:又一个计算题计算器PHP反序列化又一个PHP反序列化 Misc这是邹节伦的桌面背景图什么鬼?…...

jQuery-操作DOM
使用jQuery操作DOM dom : 文档对象模型 就是HTML元素 $() 函数的2个用法: 用法1:放入一个字符串(选择器)表示获取元素 例如 $("p") $("#abc") $(".del") 用法2:放入一个函数,表示文档就绪函数 例如 $(function(){代…...

高级网工在Linux服务器抓包,少不了这几条常用的tcpdump命令。
Linux 的命令太多,tcpdump 是一个非常强大的抓包命令。有时候想看线上发生的一些问题: nginx 有没有客户端连接过来…… 客户端连接过来的时候 Post 上来的数据对不对…… 我的 Redis 实例到底是哪些业务在使用…… tcpdump 作为网络分析神器就派上用场…...

Hough算法数学原理
直线的极坐标方程: x x 0 r cos θ x x_0 r\cos \theta xx0rcosθ y y 0 r sin θ y y_0 r\sin \theta yy0rsinθ x cos θ x 0 cos θ r cos 2 θ x \cos \theta x_0 \cos \theta r \cos^2 \theta xcosθx0cosθrcos2θ y sin θ…...

基于Debain安装 Docker 和 Docker Compose
一、安装Docker # 先升级一下系统 (Ubuntu / Debian 系) sudo apt-get update sudo apt-get upgrade# 如果你是 CentOS、红帽系列则使用: yum update yum upgrade# 安装 Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh二、Dock…...

gittee使用教学
一、git简介 Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何大小项目的版本管理。 核心功能: 项目的版本管理 团队协同开发 二、准备工作 1、下载 Git 2、除了选择安装位置以外,其他都无脑安装 3、检查一下安装情况 win…...

q2-qt-多线程
是的,Qt框架中提供了专门用于线程池的API。Qt的线程池API位于QtConcurrent命名空间下,以及QThreadPool类中。 QtConcurrent命名空间提供了一些高级的API,可以方便地使用线程池来执行并行任务。其中,QtConcurrent::run()函数可以用…...

指针,函数指针,二级指针,指针传参,回调函数,指针步长
文章目录 指针是什么?指针的定义指针的大小 指针类型指针有哪些类型?指针类型有什么意义?代码演示:(偏移)代码演示(指针解引用时取出的字节数)其他例子 野指针野指针的成因如何避免野指针 指针运算指针整数指针-指针指针的关系运算…...

StringUtils.isEmpty()方法过期的替代方法
1、问题概述? 今天在准备使用StringUtils.isEmpty()工具判断字符串是否为空的时候,突然发现idEmpty上出现了横线,这就表示这个方法可以实现但是已经过期了,官方不推荐使用了。 原因其实是因为有人给官方提交了一个问题ÿ…...

智慧电力运维综合辅助监控系统
智慧电力运维综合辅助监控系统是一种基于现代信息技术的电力运维管理工具,旨在提高电力运行安全,降低运维成本,提高服务质量。依托电易云-智慧电力物联网,该系统通过多种传感器和现场监测装置,远程在线监测、监视电力设…...

v-model和:model的区别
问题 在我们使用Element plus框架时,经常会遇到表单,比如代码块: <el-form ref"ruleFormRef" :model"ruleForm" :rules"rules" label-width"120px" class"demo-ruleForm" :size"…...

网络攻击(二)--情报搜集阶段
4.1. 概述 在情报收集阶段,你需要采用各种可能的方法来收集将要攻击的客户组织的所有信息,包括使用社交网络、Google Hacking技术、目标系统踩点等等。 而作为渗透测试者,你最为重要的一项技能就是对目标系统的探查能力,包括获知…...

oracle异常:ORA-03297:文件包含在请求的 RESIZE 值以外使用的数据
出现这个问题,主要是在对表空间扩容的时候,扩容的大小<实际数据文件大小 1、扩容的语句 alter database datafile D:\APP\ADMINISTRATOR\ORADATA\ORCL\USER.DBF resize 2G; 2、若何确定扩容大小是否比实际文件大 根据路径找到文件,查看…...

Redis 环境搭建
文章目录 第1关:Redis 环境搭建 第1关:Redis 环境搭建 编程要求 根据上述相关知识,在右侧命令行中完成 Redis 集群的部署与安装。 安装完成后,使用 echo “cluster nodes”|redis-cli -p 7001 -c >/root/test.txt 将结果保存。…...

什么是Helpdesk?对工程师有什么帮助?
信息技术时代已然到来,很多IT工程师甚至对Helpdesk都不了解,而Helpdesk已成为许多企业的重要组成部分。那么,什么是Helpdesk呢? Helpdesk,也称为技术支持服务,是一种为用户提供技术帮助和问题解决的服务。它…...

flutter添加全局水印
效果: 可以直接引用:disable_screenshots: ^0.2.0 但是有时候直接引用会报错,可以不引用插件直接把下面的源码工具类放在项目里面 工具类源码: import dart:io; import dart:math;import package:flutter/cupertino.dart; impor…...

Usergolang 一些优质关于sip协议包
在Go语言中,有一些优质的SIP协议包,适用于构建SIP客户端和服务器。以下是其中一些常用的SIP库: 1. github.com/cloudwebrtc/sip - GitHub 地址:[cloudwebrtc/sip](https://github.com/cloudwebrtc/sip) - 该库提供了用于构…...

MYSQL数据类型详解
MySQL支持多种数据类型,这些数据类型可以分为三大类:数值、日期和时间以及字符串(字符)类型。这些数据类型可以帮助我们根据需要选择合适的类型来存储数据。选择合适的数据类型对于确保数据的完整性和性能至关重要。 以下…...

解决vue3 动态引入报错问题
之前这样写的,能使用,但是有警告 警告,查了下,是动态引入的问题,看到说要用glob 然后再我的基础上,稍微 改了下,就可以了: 最后打印了下,modules[../../components/flowc…...

Mysql dumpling 导入导出sql文件
一:导出命令 mysqldump -u root -p saishi > saishi.sql mysqldump -u root -p saishi > saishi.sql root是用户名 saishi是数据库名 saishi.sql导出文件名 二:选择导入的数据库 cd到安装mysql的文件下(找不到可以用:wh…...

【数字经济】你必须知道的SABOE数字化转型
【文末送书】今天推荐一本企业管理类前沿书籍《企业架构驱动数字化转型:以架构为中心的端到端转型方法论》 目录 01传统企业数字化转型面临诸多挑战02SABOE数字化转型五环法为企业转型破除迷雾03文末送书 01传统企业数字化转型面临诸多挑战 即将过去的2023年&#…...

【Python网络爬虫入门教程2】成为“Spider Man”的第二课:观察目标网站、代码编写
Python 网络爬虫入门:Spider man的第二课 写在最前面观察目标网站代码编写 第二课总结 写在最前面 有位粉丝希望学习网络爬虫的实战技巧,想尝试搭建自己的爬虫环境,从网上抓取数据。 前面有写一篇博客分享,但是内容感觉太浅显了…...

vue2和vue3中注意全局属性的区别(例如全局使用axios )
vue2中注册一个全局属性 在vue2中注册全局属性是很方便的, 只需要使用 vue.prototype.XXXX XXXX就可以了,如下面的代码 import { Dialog,Notify,Toast } from vant; Vue.prototype.$dialog Dialog Vue.prototype.$notify Notify Vue.prototype.$toa…...

数字系统设计(EDA)实验报告【出租车计价器】
一、问题描述 题目九:出租车计价器设计(平台实现)★★ 完成简易出租车计价器设计,选做停车等待计价功能。 1、基本功能: (1)起步8元/3km,此后2元/km; (2…...

309. 买卖股票的最佳时机含冷冻期(leetcode) 动态规划思想
文章目录 前言一、题目分析二、算法原理1.状态表示2.状态转移方程3.初始化边界条件4.填表顺序5.返回值是什么 三、代码实现总结 前言 在本文章中,我们将要详细介绍一下Leetcode中买卖股票的最佳时机含冷冻期相关的内容,本题采用动态规划的思想解决 一、…...