- 博客(35)
- 收藏
- 关注
原创 VScode中文乱码原因
但 Windows 系统的控制台(包括 PowerShell)默认编码可能是GB2312(简体中文系统常见)或US-ASCII(不支持中文),两种编码不匹配,就会导致中文显示为乱码(如 “濡傛灉鏈変换浣”)。1.直接在终端输入$OutputEncoding.EncodingName,作用:查看 PowerShell 中 “输出到外部程序” 时使用的编码(比如 PowerShell 调用你的 C++ 程序时,用这个编码解析程序的输出)。如果两者输出都是 Unicode (UTF-8),说明设置成功。
2025-10-21 17:03:37
370
原创 直流无刷电机2
我们知道电感有续流的特性,流过它的电流不能突变,那么当我们的电感值足够大,载波周期足够小时,我们就可以把这一个载波周期内,两次不同开关状态下检测到的两相的电流,近似看成同一时刻这两相的电流值。从而根据基尔霍夫定律重构出这一时刻的三相电流。我们把矢量放入载波周期图中观看,我们在浅蓝色区域可以采集到 C 相的电流,在浅橙色区域可以采集到 A 相的电流,如果载波周期足够短的话,我们可以近似地认为这是同一时刻下分别流过 C 相和 A 相的电流,从而重构出 B 相的电流。
2025-08-30 20:11:07
498
原创 运动学分析——串联机械臂
(1).公垂线是指两个不平行的直线之间的最短距离线段。这条线段垂直于这两条直线,并且是这两条直线之间的最短距离。(2).原点确定方法,第一种,公垂线与z轴的交点,第二种,如果关节Zi和Zi+1相交,那关节Zi的原点就在他们两个交点。(3).确认x轴的方法,第一种Xi沿着公垂线由关节i指向关节i+1的方向,第二种就是如果如果关节Zi和Zi+1相交,那x轴就在同时垂直他们两个的方向。(4).y轴就靠右手定则了。
2025-08-29 08:38:34
1159
原创 卡尔曼笔记
(1).X是状态,k是当前值,Xk就是当前状态值,Xk-1就是上一时刻状态的值,Uk就是输入,Wk是一个过程噪声,AXk-1就是上一时刻状态的值乘上某种关系作用到Xk,BWk的B就是一个控制矩阵,然后就是输入乘上某种关系作用到Xk,Xk就是水温值。(2).黑色是最优估计值也就是修正值,也叫后验估计值,黄色是先验估计值,紫色就是观测值也就是传感器测量出来的值,红色就是当前时刻的最优估计值。(3).当前的最优估计值(红色)实际上就是由先验估计值(黄色)和当前观测值(紫色)公有的部分去得到一个值。
2025-07-01 13:32:15
338
原创 STM32——FreeRTOS
include "semphr.h"是信号量的文件(1).下图一作用中大概就是比如选择哪个任务调度模式等等之类,里面还有各种宏定义等等。(2).学习网站:https://www.freertos.org/a00110.html(3).大概分类如图三。图一图二(1).动态内存需等待任务完成才能删除。(2).在本任务内删除自身由于本身是在运行的 所以不可能删除自己了还能再释放内存 所以需要空闲任务来释放,如果删除的是别的任务 那么本任务还在运行 所以可以释放被删除任务的内存空间。
2025-03-02 11:12:55
765
原创 keil的debug功能
先打开下图debug断点调试程序功能在下面2张图中,之后我们可以给程序的某行设置断点也可以把鼠标放到下图这里点击就可以设置在下图中这个按键会执行到断点去,就是程序只执行到断点处,方便我们调试,就可以看程序有没有问题,如果执行了到断点处,程序没反应,则证明该程序出问题,则修改该处代码,假如在这个断点的上面设置了一个whle循环,如果没有触发某个条件,则会一直执行不到断点处,则证明上面的程序出现问题。
2024-09-25 22:00:20
7190
2
原创 openmv摄像
二值化就是,阈值内的的变白,阈值外的变黑。爬坡小车在下图中,我们摄像头识别出得黑白方块,在图片框内,我们采集每个黑白色块的x坐标,然后取平均值x0,这就是p算法中的测量值,然后我们图片方框假如是x为160,那x1的x坐标就是80,80就是目标值。image.什么什么就是对某个对象进行使用方法,img在上面是拍照的照片,Statistics是统计信息,统计整个照片信息,后面的参数可以选择照片的统计大小。(4).在图三中,当元组只有一个变量时,python会把元组定义成一个变量,此时元组是可以修改的。
2024-04-18 16:08:03
608
原创 STM32—I2C(MPU6050)
文章目录一.IC2介绍二.I2C的起始条件和停止条件三.I2C时序基本单元四.I2C读写数据的完整流程时序五.MPU60505.1 MPU6050介绍5.2 MPU6050参数5.3 MPU6050硬件电路5.4 MPU6050框图5.5 接线图六.软件写MPU6050代码(读取寄存器地址数据显示出来)七.软件写MPU6050代码(测量六轴XYZ)7.1 展示效果7.2 代码一.IC2介绍(1).图一是I2C的介绍,图二是半双工,全双工,单工的介绍。(2).图三是I2C协议的硬件电路,从机不能主动控制
2024-03-31 13:47:14
1250
原创 STM32—PID算法
文章目录一.PID算法是什么二.PID数学表达式和PID算法的含义2.1 PID算法数学表达式2.2 P算法2.3 D算法2.4 I算法2.5 PID动漫演示三.直立环,速度环3.1 介绍3.1 机械中值3.2 陀螺仪的角速度XYZ轴经过DMP姿态解算后分别代表什么3.3 直立环代码3.3 速度环代码3.4 平衡车仅仅平衡使用的转向环(简单版)的代码四.陀螺仪姿态解算五.平衡车仅平衡需要的环六.520编码电机使用PWM驱动6.1 电机介绍6.2 接线6.3 编码器原理6.4 520编码电机驱动代码(不加pi
2024-03-29 21:50:50
1952
2
原创 STM32——OLED菜单
文章目录一.补充二. 二级菜单代码简介:首先在我的51 I2C里面有OLED详细讲解,本期代码从51OLED基础上移植过来的,可以先看完那篇文章,在看这个,然后按键我是用的定时器扫描不会堵塞程序,可以翻开我的文章有单独的定时器按键扫描,DHT11文章也有,我的菜单从一级界面点进去二级界面,二级界面开启的内容,退出到一级界面后,会保留二级界面开启的功能并且再一次从一级界面进入二级界面后,页面保留之前开启部分的页面,然后功能之间互不影响,标志位有点多,看完肯定对标志位运用更加熟悉,看完以后开发三级四级也是很简
2024-02-15 15:52:55
3226
1
原创 STM32—DHT11温湿度传感器
文章目录一.温湿度原理1.1 时序图一.温湿度原理1.1 时序图(1).下图一是DHT11总的时序图。(2).图二对应图一的左边黑色部分,图三对应图一的绿色部分,图四的左部分图对应图一的红色部分,图四的右部分对应图一的黄色部分。(3).首先图二部分是单片机向DHT11发送我要开始的信号,此时单片机IO口处于输出模式,输出低电平至少18MS,之后释放主机总线(高电平),时间是为图五的第二行,之后把单片机IO口设置为输入模式,在图三中,83us拉低和87us拉高是DHT11对单片机的响应时间,也就是回
2024-02-14 20:25:50
2314
原创 STM32——CAN协议
对于STM32F407过滤器组有28个,STM32F103就有14个。(1).初始化结构体就是设置波特率,工作模式,每个位有多长,构成。(2).发送及接收结构体设置发送邮箱和接收报文FIFO。(3).筛选器结构体可以设置筛选器过滤那些报文。
2023-12-23 16:53:03
2645
3
原创 STM32超声波——HC_SR04
从下图手册可知,我们距离s可以等于时间微妙us/58,单位是cm,所以把定时器设置成1ms,在然后在定时器中断里面设置一个标志位,进去一次就是1ms,然后标志位在乘于一个1000,就是把1ms换算成1000us了,然后这个是来回的时间,但是要注意超声波回来的最后一刻,定时器没有达到ARR自动重装值的话,就结束了,这个也要算进去时间,就是TIM_GetCounter,然后t得到之后,t需要/2,因为是来回的时间,然后因为声速是340m/s,需要把us换成s,就是t。测量距离:2cm——400cm。
2023-12-11 12:49:15
1354
原创 STM32——USART串口协议
文章目录一.半双工,全双工和单工区别二.通信协议基础知识三.串口通信区分四.串口通信的基础知识五.USART串口外设六.USART框图七.USART基本结构八.数据模式九.单片机通过串口发送一个字节,数组,字符串和数字到电脑上9.1 接线9.2 代码十.printf函数的移值方法(单片机输出到电脑上)10.1 方法10.2 写法1代码10.3 写法2代码十一.电脑发送数据到单片机上通过OLED显示11.1 查询方法判断是否显示数据代码11.2 中断的方式来判断是否显示数据代码(一字节)十二.USART数据
2023-11-26 00:16:56
1532
原创 STM32——ADC和DMA
(1).对于GPIO来说,它只能读取引脚的高低电平,要么是高电平要么是低电平,只有两个值,而使用了ADC之后,我们就可以对这个高电平和低电平之间的任意电压进行量化,最终用一个变量来表示,读取这个变量,就可以知道引脚的具体电压到底是多少了,所以ADC其实就是一个电压表,把引脚的电压测出来,放在一个变量里,这就是ADC的作用。
2023-10-31 10:22:49
193
原创 STM32——TIM编码器接口(编码器测量位置和编码器测量速度)
(1).下图一中,编码器接入stm32的编码器接口,然后编码器接口自动控制定时器时基单元中的CNT计数器,进行自增或者自减,然后编码器进行右转,CNT++,右转产生一个脉冲(一个时钟周期),CNT就加一次,编码器进行左转,CNT–,左转产生一个脉冲(一个时钟周期),CNT就减一次,比如,向向右转产生10个脉冲后,停下来,那么这个过程,CNT就从0自增到10停下来,这个编码器接口其实就相当于一个带有方向控制的外部时钟,它同时控制着CNT计数时钟和计数方向,这样子CNT的值就表示了编码器的位置,如果我们每隔一段
2023-10-09 19:59:26
708
原创 STM32单片机——定时器中断(定时器内部时钟定时中断,定时器外部时钟,输出比较,舵机模块,直流电机驱动,LED呼吸灯)
(1).预分频,计数器和自动重装载寄存器构成了最基本的计数计时电路,他们三个这一块电路叫做时基单元,预分频之前连接的就是基准计数时钟的输入,由于基本定时器只能选择内部时钟,所以可以直接认为预分频器直接与输入端内部时钟CK_INT连接,内部时钟来源是RCC_TIMxCLK,这里频率值一般都是系统的主频的72MHZ,然后预分频器可以对这个72MHZ的计数时钟进行预分频,如果这个预分频器写0,就不分频或者说是1分频,这时候输出频率等于输入频率=72MHZ,如果预分频器写1,那就是2分频,这时候输出频率等于输入频率
2023-09-13 11:54:00
1465
原创 STM32——中断系统,对射式红外传感器计次以及旋转编码器
主程序在执行过程,如果遇到紧急事情,就先中断去执行中断程序,执行完了在回到主程序刚刚中断的位置继续执行。(1).下图是外部中断的介绍,上升沿就是低电平变成高电平的瞬间触发中断,下降沿就是高电平变成低电平的瞬间触发中断,双边沿就是上升沿和下降沿都支持,软件触发就是由程序触发。(2).相同的Pin不能同时触发中断是指PA1,PB1和PC1不能三个相同的同时触发,可以PA1,PB2这样子触发。
2023-09-08 14:06:44
480
1
原创 stm32单片机——按键控制lLED亮灭和光敏模块传感器控制蜂鸣器
根据下图可知,所以我们把stm32的IO口设置为上拉输入模式,当光线亮度没有超过阈值时,光敏模块输入高电平,模块的指示灯会灭,此时IO口无变化,当光线亮度超过阈值时,光敏模块输入低电平,此时IO口变化成低电平,模式指示灯亮了,说明改变了。
2023-08-27 16:20:42
1989
1
原创 51单片机——智能小车
五路循迹模块探测距离短,所以调试的时候让他对着白色区域看看led全部是否亮着,亮着说明距离合适,传感器放的位置也很重要,尽量在下图照片位置,放很出的话效果不好。
2023-08-24 19:54:23
6914
12
原创 STM32单片机介绍和建立工程以及GPIO模式
这里的RAM是运行内存,实际的存储介质是SRAM,大小是20k,这里的ROM是程序存储器,实质的介质是Flash闪存,大小是64k,STM32开发方式主要是基于寄存器的方式(和51一样都是用程序直接配置寄存器来达到想要的功能)和标准库的方式也就是库函数以及HAL库的方式。(1).下图的引脚号与引脚名称一 一对应,I/O口电平列有FT的则表示可以容忍5v电压,其他的则默认3.3v;主功能就是上电后默认的功能,一般和引脚功能名称相同,如果不同的话;
2023-08-24 16:31:41
610
1
原创 51单片机——433M无线遥控接收模块
433M无线遥控接收模块跟按键的原理差不多,按键是按下时,为低电平,松开则为高电平,而433M模块是当遥控按下ABCD任意键时,会在D0,D1,D2,D3口中,其中一个口产生高电平,松开为低电平,由于商家出厂每个都不一样,想要知道按下的遥控键是哪个口,可以在433M模块接上vcc跟gnd以后,D0口接上单片机的IO口,然后在单片机上接一个继电器来判断按下遥控器ABCD键,哪个键是D0口的,代码往下看。
2023-07-12 05:01:52
2035
1
原创 51单片机——SG90舵机
1.PWM是pulse width modulation,是脉冲宽度的缩写,它是通过一系列脉冲宽度进行调剂,等效出所需的波形(包含形状以及幅值)。2.PWM信号图解析:舵机需要PWM信号才能进行运动(图1),在一个周期内(图2),给一个占空比就可以决定舵机转动多少度,占空比就是在一个周期内,高电平所占据时长的百分比。
2023-07-04 00:40:18
965
原创 51单片机——IIC协议(附带AT24C02和OLED)
IIC协议全称inter-integrated Circuit(集成电路总线),又称I2C协议,是由PHILP公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备,IIC属于半双工同步通信方式。_nop_();_nop_();_nop_();_nop_();i = 18;j = 235;i = 2;j = 199;
2023-07-03 19:33:23
3516
4
原创 4G模块EC03-DNC(与51单片机之间进行操作)
上电后模块默认工作在透传模式,并自动开始网络连接,当与服务器建立连接后,串口收到的任意数 据将被透传到服务端。同时也可以接收来自服务端的数据,收到服务端数据后模块将直接通过串口输出。本模块单包数据支持的最大长度为1024字节。当多条链路同时都已与服务器建立连接时,本次数据包将同 时发送到4条链路上,任意网络链路有数据下发,模块将透明将数据输出。该模式下串口数据均视为AT指令。透传模式下串口收到“+++”帧数据后,3秒内RX引脚收到任意AT指 令,则模式切换到AT模式。
2023-06-29 02:13:34
1798
3
原创 51单片机——数码管
这就关系到了一个译码器,数码管的公共端连接了一个译码器,如果想让第四个数码管(LED5)显示1,则LED5在译码器中对应Y4,Y4的左边有P22,P23,P24,则P24给1,P23给0,P22给0,二级制化十进制,421法,因此等于4,正好对应Y4的4,然后adefg和dp给低电平,bc给高电平,则亮起1,P07~P00分别给0000 0110,然后二级制化十六进制(8421法)就是0x06。如果对应的引脚被点亮,则为共阳极,否则可能为共阴极。如果对应的引脚被点亮,则为共阳极,否则可能为共阴极。
2023-06-27 02:09:06
2302
1
原创 51单片机——LCD1602模块
如果想显示在第一行第二列的话则表示十六进制的0x01,但是显示在那里时,要求最高位D7为高电平,因此从0000 0001变成1000 0001,因此每次高位为0x80,所以就是0x80+0x01=0x81,在代码里面第一行第二行可以直接表示1或2,但是列却要减1以后在化成十六进制,所以第一行第n列则为(0x80 |( lie-1)) ,第二行第n列则表示(0x80 |(lie-1)+0x40),第二行加上0x40是因为第二行开始就是40H,而不是00H,下面代码展示。
2023-06-25 17:39:07
4199
原创 51单片机——串口通信和蓝牙模块(HC-08)
1.由上图可知,SCON寄存器配置,一般我们SM0,SM1选用工作方式1,是01, SM2为0,REN为1时,则单片机运行接收数据,REN为0时单片机不允许接收数据,这里我们选1,TB8和RB8都为0,TI是发送中断请求标志位,一开始为0,单片机发送一个数据(八位),结束时,TI会置1,表示第一个数据发送成功,需要手动用软件置0,RI为接收中断请求标志位,一开始为0,单片机接收一个数据(8位),结束时,RI会置1,表示第一个数据接收完成,需要手动置0,所以配置SCON=0x50(01010000)。
2023-06-25 02:15:12
3566
原创 51单片机——定时器和中断
(2)TF0或者TF1是计时器溢出标志,TR0或者TR1是计时器开始计时标志位,爆表后如果是定时器T0,TCON的bit5——TF0会置1,如果是定时器1,TCON的bit7——TF1会置1,如果是定时器查询的方式(无中断),需要手动用软件清0,如果定时器爆表用硬件中断方式,则不需要手动清0。(1)像闹钟一样,,根据时钟的输出信号,每隔一秒,计数单元的数字增一,当计数单元数值增加到设定的提醒时间时,计数单元会自动向系统发出中断申请,产生闹铃提醒,使程序跳转到中断服务函数去执行。(定时器0模式1—16位)
2023-06-23 23:59:54
5090
1
原创 51单片机——继电器,震动传感器和按键原理
1.原理:红灯为电源指示灯,当VCC和GND接好以后红灯会亮起,IN口接到单片机的IO口上,当单片机给继电器的IN口输入低电平时,继电器内部会闭合(NO和COM会闭合),则导通,当导通的时候绿灯亮起。1.原理:单片机的IO口默认高电平,当按键按下时,由原理图可知,IO口变为低电平,证明按键被按下,但是按键按下时会产生抖动5-10ms,此时电平不稳定,所以需要给一个延迟函数消抖。1.原理:VCC和GND接上以后电源指示灯亮起,当震动传感器被震动时,DO口发出低电平,则开关信号指示灯亮起,表示被震动。
2023-06-22 22:59:58
887
1
原创 ESP8266—01s(与51单片机之间进行操作)
TCP分为客户端和服务器,TCP客户端是通过TCP服务器的IP和端口号来连接TCP服务器的,TCP服务器用来侦听,只能客户端连接服务器,服务器不能连接客户端(图1见解流程);2.网络调试助手(电脑)建立TCP server并设置端口号,esp8266(安信可)为station模式时为TCP client,然后esp8266去连接电脑,此时esp8266为客户端,电脑作为服务器,此时电脑的ip地址为固定,esp8266发指令连接电脑服务器时,需要跟电脑的地址一致。图6为esp8266作为服务器与单片机连接。
2023-06-21 23:57:01
7832
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅