自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 自动控制原理——数学模型建立

给系统施加某种测试信号,记录输出响应,并用适当的数学模型去逼近系统的输入输出特性。传递函数适用情况(零初始条件下、单输入单输出系统、线性定常系统)初始条件引起的响应就是求时域时的齐次方程的解(忽略R(s ))描述系统输入、输出变量以及内部个变量之间的关系的数学表达式。就是输入的误差,输出的是反馈信号,这两个的关系。用尾一标准型,系统系数为增益 (此时为1)(PID)看曲线调参就是这种?现在主要是应用与(线性定常系统的分析。结构图:(可用的数学关系)2.3.1 传递函数的定义。闭环系统的开环传递函数?

2024-01-21 00:15:16 829

原创 电气走线——部件、线缆、线号、端子排

元器件选型。

2023-10-05 19:16:12 253

原创 电气元器件——变频器、自锁开关、电磁继电器、温度检测

16讲-21讲的老师不错,适合小白。

2023-10-05 16:07:26 276

原创 电气基础——电源、变压器、接触器、断路器、线缆

YJVR是XLPE insulated PVC sheathed copper core flexible cable(交联聚乙烯绝缘聚氯乙稀护套铜芯软电缆),YJV是硬芯的 , 就是里面的铜芯分软硬 ,R为软,不标示就是硬。断路器是有灭弧装置的,可操作负荷电流,故障电流,不能通过观察来判断开合状态,可带负荷拉合闸,隔离开关没有灭弧装置,总体属于不能带负荷操作,结构简单,检修时有明显开断点。三相电路和家庭两相电路都是比较常见的一种电路形式,那么两相电和三相电的区别是什么?一、两相电和三相电的区别是什么。

2023-10-03 14:36:51 356

原创 const和volatile和restict

高速缓存:两次操作都没有改变上述代码的值,x就被保存在寄存器中,使用时才读取,节约时间。volatile:程序不可改变,但代理(其它程序)可以改变的变量。在形参中使用最常见,防止函数修改被传入的参数。const:使变量限定为不可改变。防止某一函数修改 全局变量。

2023-09-14 22:10:58 175

原创 内存分配malloc和free

动态内存分配的使用时:在一般只使用100个内存时,偶尔也需要使用1000个内存的情况,一直申请1000的内存消耗太大。malloc分配的内存不会为其赋名,但是确实会返回动态分配内存块的首地址。申请后返回的指针是void*,在c中可以不用转换 ,但是在c++中不可以。程序存在一块内存无法访问也无法释放,在程序结束前耗尽了所有内存。栈存储自动变量,新创建的变量先加入内存,然后已相反的顺序销毁。在使用完内存后记得释放,因为有些系统不会自动释放。自动数据(局部变量)一个区。静态(全局)变量一个区。

2023-09-14 19:56:07 100

原创 c存储类别、连接、内存管理

在 { } 块内的 static变量,存储在静态变量中,生存周期是整个程序,表面作用域是块 { } 内,但是可以用指针传递地址访问。有 动态分配malloc、自动、寄存器、静态块作用域、静态外部链接、静态内部链接。用register申请 register int quick;申请一个在cpu寄存器中储存的变量,不一定会成功。static使文件存储在静态变量中,等于 { } 块内变量,作用域是 { }块内。解释:内存的使用/声明方式。作用域也是 { }块内。

2023-09-14 14:00:56 127

原创 字符串函数

word为存储地址,len为获取长度,stdin为从标准输入键盘获取。比较前5个字符 能匹配上返回0,否者非0(有一定规律asc11)以第一个非空白字符开始,以空格、换行、制表、空行结束。能匹配上返回0,否者非0(有一定规律asc11)新标准新增gets_s(words,len)在字符串p1后加上 字符串p2的全部内容。将p2,p3的内容拼接起来,放入p1中。fgets()可以获取指定长度的字符。将p2字符串内的12个字符加给p1。p2内容拷贝至p1第6个字符开始,p2内容的5个字符,拷贝至p1内。

2023-09-13 10:05:52 59

原创 八股——const 关键字

这样限定的是指针p不能修改指向的值 *p 或 p[2],但是仍然可以修改p的指向或者ar。显示数组的函数不小心修改了指针指向的值,这时候没有加const关键字,编译器不会报错。这样限定的是指针p能修改 指向的值*p / p[2],但是不可以修改p的指向。这样限定的是指针p不能修改 指向的值*p / p[2],也不可以修改p的指向。显示数组的函数不小心修改了指针指向的值,这时候 加const关键字,编译器报错。限定的是自己,限定的是常量,3.const的3种用法。const的限定有限,

2023-09-12 19:45:59 447

原创 设计模式——工厂模式介绍

提供创建对象的最佳方法,在创建对象时不会对客户端暴露创建逻辑,对象的创建在一个地方,并通过一个通用接口指向新创建的对象把接口暴露出来给其它函数使用。设计模式有23种,其用途是让代码稳定(添加功能时其它功能被破坏,引入了设计模式)、可读性更强、可以重复使用。代码设计经验的总结,稳定,拓展性更强,一系列编程思想。struct Animal{ //类。软件设计模式,一套代码设计经验的终结。类:用户自己定义的结构体。

2023-09-11 21:32:14 58

原创 基于Linux的智能家居(工厂模式)

主函数-----实现UART和Tcp两个接收线程,不断接收指令并解析指令调用不同的设备函数封装。输出设备模块----实现设备初始化、设备启动、设备关闭的函数封装放在种。程序分为3部分-------------1.输入控制 2.输出设备 3.主函数-多线程。亮点,在封装了一个类,调用可以编码一个对象,然后用链表将一类对象串起来。输入控制的模块----实现指令的收集,并将数据放在一个定义的头文件种。堆栈的存储:在函数体前面的变量,后面的函数可以直接用。

2023-09-11 09:58:17 490

原创 C语言编程的7个步骤

首先将c代码转换成01的机器语言放在目标文件夹里,然后连接库函数01代码和启动代码才能生成一个可执行文件。主要debug是两方面1是程序不能运行(语法错误,括号,传参) 2是程序能运行但达不到我i们想要的目标。设计目标的实现路径,使用什么接口函数、如何组织程序、如何处理数据、如何表达结果。这里也不设计代码编写。程序编写不是一蹴而就,而是反复修改,好的习惯是模块化编程和多些注释。1、2步也显得很重要。我们要知道我们的设计程序的目标是什么,这里不涉及代码编写。这里就是将第二步的程序设计框架编写成C代码。

2023-09-10 17:27:26 1125

原创 Orangepi安装外设库 wiringPi

注意:mobaXterm传送文件要在SSH登陆环境下才可以。同时电脑和orangepi都在同一个wifi下。

2023-09-03 20:34:31 344

原创 Orangepi 香橙派配置wifi网络

【代码】Orangepi 香橙派配置wifi网络。

2023-09-03 20:26:53 822

原创 香橙派Orangepi Zero2 刷机步骤

香橙派 Orangepi Zero2 全志H616刷机

2023-09-03 16:24:14 623

原创 Linux下 Socket服务器和客户端文件互传

在put 发送文件中,当文件大小超过给定字节就会溢出,导致整个结构体崩坏,破坏cmd。思考:除了加大给定字节大小,还有其它办法吗?strcpy是怎么实现的read函数读的字节小于fd文件字节,会崩坏buf里的数据。strtok函数会破坏使用的字符串,要保留原来字符串需要strcpy复制出来处理。本地命令不用服务器处理的命令,ret=5,ret=6不要进入hanle_server_msg用recv函数组赛。

2023-09-03 09:51:42 996

原创 Linux系统下建立Socket聊天服务器

1.服务器结构。

2023-09-01 12:56:06 1036

原创 香橙派 Orangepi Zero2 全志H616——简介

指令是计算机运行的最小的功能单位,而硬件的作用是完成每条指令规定的功能。就是加、减、乘、除、指数运算、等的命令集合。就相当于造房子中砌砖的方式。

2023-08-31 15:08:33 820

原创 STM32开发——总结

32中引脚都有很多功能,如图,PA0和PA15都可以做为TIM2_CH1的输出IO,但是也只能一个引脚,通过CubeMX配置后,你就不能重复定义TIM2_CH1的输出了,防止错误。

2023-06-27 22:35:50 223

原创 STM32开发——智能小车(循迹、避障、测速)

tim2:产生PWM波20ms(左右轮调速ch1、ch2) 产生PWM波20ms(舵机ch3) 7199、199。tim2:产生PWM波20ms(左右轮调速ch1、ch2) 产生PWM波20ms(舵机ch3) 7199、199。tim3:定时1s(Oled发送速度)tim1:定时1us(超声波测距)tim1:定时1us(超声波测距)PB14:外部中断——测速累加。左边红外D0——PB12。右边红外D0——PB13。)——应该是硬件设计问题。motor.c代码相同。I2C很容易和IO冲突。

2023-06-27 22:32:58 13788 4

原创 STM32开发——非标协议(DH11+LCD1602)

编译的总文件夹dh11andlcd,C文件不能跨文件夹查找,新增的分文件,需要都放调用的文件夹下C文件和H文件理解:H文件是门脸,放在前面给别人的,别人一看就知道有什么东西。C是给内部人用的,不用放在门脸上。

2023-06-22 13:56:00 851

原创 STM32开发——IIC(OLED屏幕)

在oled屏幕上显示文字或者图像。IIC协议——OLED屏幕_趣知boy的博客-CSDN博客。

2023-06-20 11:09:07 896

原创 STM32开发——ADC(烟雾传感器)

作用:用于读取电压值,然后转换为数字量传给单片机,单片机再通过计算,可以得到电压值。ADC的性能指标量程:能测量的电压范围分辨率:ADC能辨别的最小模拟量,通常以输出二进制数的位数表示,比如:8、10、12、16位等;位数越多,分辨率越高,一般来说分辨率越高,转化时间越长转化时间:从转换开始到获得稳定的数字量输出所需要的时间称为转换时间ADC特性12位精度下转换速度可高达1MHZ供电电压:V SSA :0V,V DDA :2.4V~3.6V。

2023-06-19 22:39:39 3050 1

原创 STM32开发——DMA(数据搬运)

DMA(Direct Memory Access,直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于CPU,在这个时间中,CPU对于内存的工作来说就无法使用。代替 CPU 搬运数据,为 CPU 减负。1. 数据搬运的工作比较耗时间;2. 数据搬运工作时效要求高(有数据来就要搬走);3. 没啥技术含量(CPU 节约出来的时间可以处理更重要的事)。

2023-06-19 10:26:18 1364

原创 STM32开发——看门狗

窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测程序运行时间的场合。窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器。

2023-06-16 15:22:30 1550

原创 STM32开发——串口通讯(第2篇)——WIFI(Esp8266)

注意:1.在中断中一般不直接在中断服务函数里处理数据,而是在收到数据后直接丢给队列,再处理数据;2.在中断服务函数里尽量减少使用延时函数及打印函数。

2023-06-15 16:01:22 2587

原创 STM32开发——串口通讯(第1篇)——蓝牙(非中断+中断)

通过中断的方法接受串口工具发送的字符串,并将其发送回串口工具。串口发送数据,使用超时管理机制串口接收数据,使用超时管理机制串口中断模式发送串口中断模式接收作用:以阻塞的方式发送指定字节的数据形参 1 :UART_HandleTypeDef 结构体类型指针变量形参 2:指向要发送的数据地址(指针),(用数组时不用取地址)(用字符变量需要取地址&)形参 3:要发送的数据大小,以字节为单位 strlen(ch)形参 4:设置的超时时间,以ms单位,最大0xffff。

2023-06-09 22:21:07 3995

原创 STM32开发——感应垃圾桶(舵机、超声波测距、振动检测)

PWM波的频率不能太高,大约50HZ,即周期=1/频率=1/50=0.02s,20ms左右。确定 定时时间=1/频率其中:Tclk:定时器的输入时钟频率(单位MHZ)Tout:定时器溢出时间(单位为us)eg;4999eg:7199如果周期为20ms,则 PSC=7199,ARR=199角度控制0.5ms-------------0度;2.5% 对应函数中CCRx为51.0ms------------45度;5.0% 对应函数中CCRx为10。

2023-06-08 19:47:26 1811

原创 STM32开发——定时器led、PWM呼吸灯

定时器分类:基本定时器(TIM6~TIM7)通用定时器(TIM2~TIM5)高级定时器(TIM1和TIM8)A.输入捕获B.输出比较C.PWM 生成(边缘或中间对齐模式)D.单脉冲模式输出A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)C.输入捕获D.输出比较E.支持针对定位的增量(正交)编码器和霍尔传感器电路F.触发输入作为外部时钟或者按周期的电流管理。

2023-06-07 21:13:40 1733

原创 STM32开发——电动车报警装置

单片机供电VCC GND接单片机产品不震动,输出高电平,模块上的DO口产品震动,输出低电平,绿色指示灯亮AO口不用编程实现需求:当振动传感器接收到振动信号时,使用中断方式点亮LED1。重新中断服务函数//如果中断来源是PA4 PA4为低进入了中断//led1亮500ms后熄灭如果直接在中断服务函数里调用 HAL_Delay 函数,则会造成系统卡死。原因:程序初始化时默认把滴答定时器的中断优先级设为最低,其它中断源很容易打断它导致卡死。

2023-06-07 10:26:36 748

原创 STM32开发(CubeMX+HAL)——点灯(轮询、中断)

中断优先级中的级别抢占优先级:高抢占可以打断低抢占响应优先级:高响应不可以打断低响应中断是软件级别的事事件是硬件级别的事//中断/事件线/*!disabled.//EXTI 模式/*!//触发类型/*!//EXTI 控制/*!lines.DISABLE */EXTI_Mode_Interrupt = 0x00, //产生中断EXTI_Mode_Event = 0x04 //产生事件EXTI_Trigger_Rising = 0x08, //上升沿。

2023-06-06 14:58:05 1395

原创 STM32开发——简介、开发环境(Keil5、CubeMX)、HAL库

什么是单片机?单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。STM系列单片机命名规则ST -- 意法半导体M -- Microelectronics 微电子32 -- 总线宽度项目。

2023-06-05 16:30:02 11367

原创 语音识别模块SU-03T

B7引脚接串口工具RXDB6引脚接串口工具TXD连接正确后,打开UnioneupdataTool.exe工具,可以看到串口号。

2023-06-04 11:38:46 756

原创 51小车测速及OLED显示速度

VCC 接电源正极3.3-5VGND 接电源负极DO TTL开关信号输出AO 此模块不起作用测试原理和单位换算轮子走一圈,经过一个周长,C = 2x3.14x半径= 3.14 x 直径(6.5cm)对应的码盘也转了一圈,码盘有20个格子,每经过一个格子,会遮挡(高电平)和不遮挡(低电平),那么一个脉冲就是走了 3.14 * 6.5 cm /20 = 1.0205CM定时器可以设计成一秒,统计脉冲数,一个脉冲就是1cm假设一秒有80脉冲,那么就是80cm/s。

2023-06-02 20:27:47 637 4

原创 51智能小车-串口控制、循迹、避障

51智能小车-串口控制、循迹、避障

2023-06-02 17:13:04 1729 3

原创 IIC协议——OLED屏幕

IIC全称Inter-Integrated Circuit (集成电路总线) 简称I2C是由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。IIC属于半双工同步通信方式简单性和有效性由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件多主控(multimastering)其中任何能够进行发送和接收的设备都可以成为主总线。

2023-05-27 16:36:10 3791

原创 非标协议外设-DHT11温湿度传感器

只有一个数据传输线,用 DATA 时序传输。只有一根数据线DATA,上官一号发送序列指令给DHT11模块,模块一次完整的数据传输为40bit,高位先出8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验检测模块是否存在数字0信号表示方法如图所示数字1信号表示方法.如图所示。

2023-05-24 18:05:12 481

原创 非标协议外设LCD1602显示

对于&&(逻辑运算):( false && x ) = false;对于&(按位运算):(0 & x ) = 0;2.注意事项:(1) 在对液晶模块的初始化中要先设置其显示模式。(4)以后每次写指令,读/写数据操作均需要检测忙信号。a&b=01100000//全1出1,有0出0。(8)写指令 06H:显示光标移动设置。(9)写指令 0CH:显示开及光标设置。(2)写指令 38H(不检测忙信号)(5)写指令 38H:显示模式设置。(6)写指令 08H:显示关闭。(7)写指令 01H:显示清屏。

2023-05-13 22:18:09 116

原创 串口通讯(第3篇)4G模块

内网发送指令cmd:en 或者cmd:close就可以通过4G模块 远程控制单片机上的led或者IO。5.1AT+HEARTINFONEW=1,ykyk //设置心跳包数据。采用USB串口驱动对4G模块进行设置(卡如图放置,别放错了)——线连接是错的。连接完成后灯状态为:亮3个——且可以收到心跳包数据。原理是公网发送数据——4G模块——串口——控制单片机。局域网和公网通讯采用内网穿透——花生壳软件。3.就可以通过公网访问到这个内网的服务器。3.通过4G网络对单片机进行控制。

2023-05-11 13:56:02 1978

原创 串口通讯(第2篇)WIFI模块

注意:需要在同一个局域网下(连接到相同的WiFi),才能连接到服务器。

2023-05-10 21:41:08 1294

基于Matlab的机器学习BP神经网络预测模型

用于构建BP神经网络模型 用途:通过对历史数据学习构建预测模型,可用于对未来数据的预测 说明:采用Matlab内置模型,包括数据归一化,学习,预测,数据反归一化。 可以自己设定相关的内置参数

2023-02-18

数学建模国赛美赛模板word

内容:数学建模国赛美赛通用word模板 写作框架已经搭建好,只需要填充内容即可 每小节写作技巧也有相应提示 一键匹配写作格式

2023-02-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除