首页
关于我
友链
小程序
舔狗日记
小黑屋
音乐解锁
阿狸和桃子
Search
1
windows11系统自带VPN连接不上群辉VPN服务器问题
468 阅读
2
数字振镜XY2-100协议
446 阅读
3
使用ESP8266完成校园网WEB认证
438 阅读
4
将校园卡复制到小米手环
396 阅读
5
zynq调试网口所遇到的问题记录
274 阅读
技术
生活
登录
Search
标签搜索
qt
mqtt
FreeRTOS
stm32
iar
VPN
光猫破解
esp8266
群晖
VideoStation
exti
c++
eclipse
bootloader
pixhawk
遥控器
失控保护
ARM
NAS
ENPASS
AMENG
累计撰写
79
篇文章
累计收到
17
条评论
首页
栏目
技术
生活
页面
关于我
友链
推荐
舔狗日记
小黑屋
音乐解锁
阿狸和桃子
搜索到
79
篇与
的结果
2022-08-13
windows11系统自带VPN连接不上群辉VPN服务器问题
错误提示有:1、L2TP连接尝试失败,因为安全层再初始化与远程计算机的协商时遇到一个处理错误。2、无法建立计算机与VPN服务器之间的网络连接,因为远程服务器未响应。这可能是因为未将计算机与远程服务器之间的某种网络设备(如防火墙、NAT、路由器等)配置为允许VPN连接。请与管理员或服务提供商联系以确定哪种设备可能 产生此问题。解决方法:1、首先确认预共享秘钥错没错,这个错了也会有上面的错误提示2、更改注册表,运行 regedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent,新建DWORD(32位)值,名称为AssumeUDPEncapsulationContextOnSendRule,并双击修改其值为2。重启3、如果以上步骤还没解决就在网络连接离改对应的连接,4、运行 regedit,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters在空白处右击,创建新的键ProhibitIpSec(建议复制不容易出错)注意:创建新键DWORD要选32位的,AllowL2TPWeakCrypto键的数据为1,新键ProhibitIpSec的数据为1,重启目前用以上方法都解决了,如有其它问题再行讨论
2022年08月13日
468 阅读
2 评论
0 点赞
2022-08-01
STM32F407开发板之踩坑
前言:由两颗电容引起的芯片不定时跳硬件中断。踩这坑之前已经画了一版电路了,且已经打板了,由于第一版开始打算用STM32F103,所以芯片外围电路都是按照F103设计的,由于一次不小心把芯片短路了烧了,当时F103ZET6炒到接近200一块,刚好手上有几片之前剩余的F207ZET6,于是网上查了查能否引脚共用,查到其中除了有几个供电引脚有些许差别以外,其余都能共用(STM32F207有多路供电,缺少一路没太大影响),于是把不同的引脚掰断直接焊上去了,其中VCAP_1和VCAP_2直接掰断悬空了。然后烧录代码,能直接运行,接着就开始画第二版电路了,参考别人的外围供电,VCAP_1和VCAP_2接10nf电容然后接地。由于网上F207的资料很少,就直接淘宝找店家要了一份开发板的原理图。打板回来后焊接上芯片和外围电路,开始运行正常,但是随着代码增加,出现了不定时死机,调试发现跳硬件中断,于是一顿排除,数组越界,指针指飞,堆栈溢出,甚至更改时钟倍频设置,还是不定时死机,于是就开始排查硬件问题,换晶振,加焊芯片引脚,结果毛用没有,这是就想着不会是芯片出问题了吧,就开始准备换块芯片试试,换芯片之前偶然看了眼之前的F407开发板的原理图,发现VCAP_1和VCAP_2都是使用的2.2uf的电容,于是就把10nf的电容拆下换2.2uf的电容试试,并没抱太大希望,想着电容无非就是滤波的功能,应该对芯片影响不大,结果换了后不死机了,还是不信邪,让芯片开机运行了一晚上,还是没死机,至此,爬出深坑了。于是查找资料:也就是这里,对CAP_1 和 VCAP_2的真正作用,做了详细的说明。CAP_1 和 VCAP_2是连接到调压器上,为备份域和待机电路以外的所有数字电路供电。也就是手册中说到的1.2V域。(“调压器为 1.2 V 域(内核、存储器和数字外设)提供全功率”)。而有些封装么有CAP_1 (pin31)和 VCAP_2(pin47),而有VSS_1(pin31)和VSS_2(pin47)。VSS_1(pin31)和VSS_2(pin47)的真正作用是激活或者停用调压器。
2022年08月01日
72 阅读
0 评论
0 点赞
2022-07-28
OpenWRT(lede)更改DNS设置
1.WAN口保存&应用后 客户机发出dns解析请求后路由器用上面的dns回应2.Lan口进入openwrt的luci页面。在 网络>网卡>LAN 选择编辑保存&应用后,路由器自身的dns解析请求 会使用 上面设置的DNS 来回应3.LAN口DHCP选项进入openwrt的luci页面。在 网络>网卡>LAN 选择编辑在 DHCP选项下 填入6,114.114.114.144,8.8.8.8效果如下:该设置会修改连接到路由器LAN的DNS(类似于自定义电脑的DNS)4.DHCP/DNS5.总结电脑DNS(LAN) > DHCP的DNS > WAN口DNS1.最常用的DNS设置方式。可以由DHCP请求获得,或自行设置。在静态IP的情况下,必须设置,否则无法查询外面的主机2.如果路由器用于桥接方式,并且使用静态IP时,无法用DHCP请求的方式得到DNS,这是该选项的主要用途。其他场合下,则会忽略由DHCP服务器的DNS设置,改用这个设置。3.如果该机器是子网的DHCP服务器,用于设置DHCP客户端的DNS。如果留空,默认则用自身的IP。通常客户端看到的DNS是这个(手机,电脑等)4.如果自己是子网的DNS服务器,用于设置转发服务器。如果不设置,则用上游DNS(由1或2)服务器当第2、3、4项不设置时,默认使用1的DNS解析
2022年07月28日
147 阅读
0 评论
0 点赞
2022-03-13
Ymodem协议
YModem协议: YModem协议是由XModem协议演变而来的,每包数据可以达到1024字节,是一个非常高效的文件传输协议。 下面先看下YModem协议传输的完整的握手过程:先看下图。SENDER:发送方。 RECEIVER:接收方。第一步先由接收方,发送一个字符'C'发送方收到'C'后,发送第一帧数据包,内容如下:SOH 00 FF Foo.c NUL[123] CRC CRC第1字节SOH:表示本包数据区大小有128字节。如果头为STX表示本包数据区大小为1024第2字节00: 编号,第一包为00,第二包为01,第三包为02依次累加。到FF后继续从0循环递增。第3字节FF: 编号的反码。 编号为00 对应FF,为01对应FE,以此类推。第4字节到最后两字节:若第1字节为SOH时有128字节,为STX时有1024字节,这部分为数据区。“Foo.c” 文件名, 超级终端下,在文件名后还有文件大小。官方dome也是因为使用了这个文件大小进行比对。这就是为什么用SecureCRT中的YMODEM协议而无法正确传输的原因。在文件名和文件大小之后,如果不满128字节,以0补满。最后两字节:这里需要注意,只有数据部分参与了效CRC验,不包括头和编码部分。16位CRC效验,高字节在前,低字节在后。接收方收到第一帧数据包后,发送ACK正确应答。然后再发送一个字符'C'。发送方收到'C'后,开始发送第二帧,第二帧中的数据存放的是第一包数据。接收方收到数据后,发送一个ACK然后等待下一包数据传送完毕,继续ACK应答。直到所有数据传输完毕。数据传输完毕后,发送方发EOT,第一次接收方以NAK应答,进行二次确认。发送方收到NAK后,重发EOT,接收方第二次收到结束符,就以ACK应答。最后接收方再发送一个'C',发送方在没有第二个文件要传输的情况下,发送如下数据SOH 00 FF 00~00(共128个) CRCH CRCL 接收方应答ACK后,正式结束数据传输。以上部分,为YMODEM协议的基本操作流程。附上ASCII码表。
2022年03月13日
133 阅读
2 评论
0 点赞
2022-02-11
旧电脑升级Win11步骤
1、下载Win11系统,下载网址https://www.microsoft.com/zh-cn/software-download/windows11,官方下载太慢,可以尝试用迅雷下载加速。2、将下载的系统解压3、删除dll文件。(盲猜这步应该是跳过检测)4、点击setup.exe开始升级。之后就是按照提示一步步升级了,我选择的是保留应用和文件,升级后软件和文件都在。
2022年02月11日
121 阅读
2 评论
0 点赞
2022-01-02
PID算法的C语言实现
/************************************************************************** 函数功能:增量PI控制器 入口参数:编码器测量值,目标速度 返回 值:电机PWM 根据增量式离散PID公式 pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)] e(k)代表本次偏差 e(k-1)代表上一次的偏差 以此类推 pwm代表增量输出 在我们的速度控制闭环系统里面,只使用PI控制 pwm+=Kp[e(k)-e(k-1)]+Ki*e(k) **************************************************************************/ int Incremental_PI (int Encoder,int Target) { float Kp=20,Ki=30; static int Bias,Pwm,Last_bias; //相关内部变量的定义。 Bias=Encoder-Target; //求出速度偏差,由测量值减去目标值。 Pwm+=Kp*(Bias-Last_bias)+Ki*Bias; //使用增量 PI 控制器求出电机 PWM。 Last_bias=Bias; //保存上一次偏差 return Pwm; //增量输出 }/**************************************************************************函数功能:位置式PID控制器入口参数:编码器测量位置信息,目标位置返回 值:电机PWM根据位置式离散PID公式 pwm=Kpe(k)+Ki∑e(k)+Kd[e(k)-e(k-1)]e(k)代表本次偏差 e(k-1)代表上一次的偏差 ∑e(k)代表e(k)以及之前的偏差的累积和;其中k为1,2,,k;pwm代表输出**/int Position_PID (int Encoder,int Target){ float Position_KP=80,Position_KI=0.1,Position_KD=500; static float Bias,Pwm,Integral_bias,Last_Bias; Bias=Encoder-Target; //求出速度偏差,由测量值减去目标值。 Integral_bias+=Bias; //求出偏差的积分 Pwm=Position_KPBias+Position_KIIntegral_bias+Position_KD*(Bias-Last_Bias); //位置式PID控制器 Last_Bias=Bias; //保存上一次偏差 return Pwm; //增量输出}<br/>PID 整定口诀 参数整定找最佳, 从小到大顺序查。 先是比例后积分, 最后再把微分加。 曲线振荡很频繁, 比例度盘要放大。 曲线漂浮绕大弯, 比例度盘往小扳。 曲线偏离回复慢, 积分时间往下降。 曲线波动周期长, 积分时间再加长。 曲线振荡频率快, 先把微分降下来。 动差大来波动慢, 微分时间应加长。 理想曲线两个波, 前高后低四比一。 一看二调多分析, 调节质量不会低。<br/>
2022年01月02日
72 阅读
0 评论
0 点赞
2021-12-25
调试STM32F207编码器时遇到的问题
一个项目需要对电机闭环控制,采用的霍尔编码电机。本来用的STM32F103ZET6,然后不知道咋回事芯片发热烧坏了,然后正好有一批STM32F207ZET6,对比了下IO口发现一样,就直接干上去了,干上去后发现3.3和GND处于短路状态,开始怀疑是3.3V电压出问题了,就把3.3V供电部分全部拆除了,发现还是短路,就又把芯片引脚仔细对了一遍,发现供电引脚有几个对不上。如下图由于VSS和VDD芯片能不是相连的,所以少一路供电应该问题不大,就直接把这几个引脚掰断干上去了,烧下测试代码,成功运行,至此换芯片结束。代码部分直接换库文件,移植过程还算简单。但当调到编码器时,一直没有读数。一度怀疑是不是掰断那几个引脚引起的问题,无奈之下用STM32CubeMX生成的代码测试一下,发现可以正常读数,遂排除了硬件问题。然后对比发现了问题调整前的代码GPIO_PinAFConfig(GPIOA,GPIO_Pin_9,GPIO_AF_4);GPIO_PinAFConfig(GPIOA,GPIO_Pin_10,GPIO_AF_4);调整后的代码GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_4);GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_4);不难看出,调整的就是上面红色参数部分。一个是GPIO_Pin_N,一个是GPIO_PinSourceN,其实这2个参数是不一样的。GPIO_Pin_n可以理解为某端口脚在整个端口的位置。比方某GPIO口的第6管脚位置编码GPIO_Pin_6 被定义为 ((uint16_t)0x0040) ,在对相应GPIO管脚做基本属性配置时会用到,如配置输入输出模式、模拟输入模式的选择等。有兴趣的话,可以点击GPIO_Init( )进去看看。而GPIO_PinSourceN一般是在对某GPIO口相应pin脚的复用功能进行选择配置才会用到。它是根据端口各脚位的位置按顺序从0开始依次递增编号,可以理解为该管脚在该端口的序号。比方某GPIO口的第6号复用功能脚的序号GPIO_PinSource6 被定义为 ((uint8_t)0x06) 。有兴趣的话,也可以打开GPIO_PinAFConfig( )函数看看。显然,GPIO_PinSource6跟上面的GPIO_Pin_6的值相差甚远。下面是ST官方库代码中有关GPIO_Pin_N的定义:#define GPIO_Pin_0 ((uint16_t)0x0001)#define GPIO_Pin_1 ((uint16_t)0x0002)#define GPIO_Pin_2 ((uint16_t)0x0004)#define GPIO_Pin_3 ((uint16_t)0x0008)#define GPIO_Pin_4 ((uint16_t)0x0010)#define GPIO_Pin_5 ((uint16_t)0x0020)#define GPIO_Pin_6 ((uint16_t)0x0040)#define GPIO_Pin_7 ((uint16_t)0x0080)#define GPIO_Pin_8 ((uint16_t)0x0100)#define GPIO_Pin_9 ((uint16_t)0x0200)#define GPIO_Pin_10 ((uint16_t)0x0400)。。。。。。#define GPIO_Pin_15 ((uint16_t)0x8000)#define GPIO_Pin_All ((uint16_t)0xFFFF)下面是有关GPIO_PinSourceN的定义:#define GPIO_PinSource0 ((uint8_t)0x00)#define GPIO_PinSource1 ((uint8_t)0x01)#define GPIO_PinSource2 ((uint8_t)0x02)#define GPIO_PinSource3 ((uint8_t)0x03)#define GPIO_PinSource4 ((uint8_t)0x04)#define GPIO_PinSource5 ((uint8_t)0x05)#define GPIO_PinSource6 ((uint8_t)0x06)#define GPIO_PinSource7 ((uint8_t)0x07)#define GPIO_PinSource8 ((uint8_t)0x08)#define GPIO_PinSource9 ((uint8_t)0x09)#define GPIO_PinSource10 ((uint8_t)0x0A)。。。。。。#define GPIO_PinSource15 ((uint8_t)0x0F)贴出编码器驱动代码void Encoder3_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_ICInitTypeDef TIM_ICInitStructure; GPIO_StructInit(&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = TIM3_CH1_PIN | TIM3_CH2_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //复用模式 GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(TIM3_CH1_GPIO, &GPIO_InitStructure); //引脚映射 GPIO_PinAFConfig(TIM3_CH1_GPIO, GPIO_PinSource6, GPIO_AF_TIM3); GPIO_PinAFConfig(TIM3_CH1_GPIO, GPIO_PinSource7, GPIO_AF_TIM3); //定时器设置 TIM_DeInit(TIM3); TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Prescaler = 0; //时钟分频 TIM_TimeBaseStructure.TIM_Period = 65535;//计数器最大值 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;// 时钟分频:不分频 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //初始化计时器 //编码器模式设置 TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12,TIM_ICPolarity_Rising , TIM_ICPolarity_Rising ); TIM_ICStructInit(&TIM_ICInitStructure); TIM_ICInitStructure.TIM_ICFilter = 15; TIM_ICInit(TIM3, &TIM_ICInitStructure); TIM_SetCounter(TIM3,0); TIM_Cmd(TIM3, ENABLE); }方向读取encoder_1 = (TIM3->CR1 & 0X10)>>4;数据读取num = TIM3->CNT;读取后清零TIM3->CNT = 0;
2021年12月25日
65 阅读
0 评论
0 点赞
2021-12-22
电磁阀、电磁铁的工作原理说明
1、电磁铁什么是电磁铁?电磁铁是一个带有铁芯的螺线管。电磁铁的磁性跟哪些因素有关?电流和线圈匝数。电磁铁通电时可以产生电磁,断电时电磁消失;比如通电时电磁铁吸引大头针,断电时电磁铁不吸引大头针。电磁铁的优点:1>电磁铁磁性的有无,可以通断电来控制;2>电磁铁磁性强弱,可以改变电流大小来控制;3>电磁铁的极性变换,可以改变电流方向来控制。2、电磁阀什么是电磁阀?电磁阀是由几个气路和阀芯组成的,由阀芯控制各个气路之间接通或者断开。电磁阀分为直动式电磁阀和先导式电磁阀。先导式电磁阀则是在电磁力的作用下先打开先导阀,使气体进入电磁阀阀芯气室,利用气压来推动电磁阀阀芯,实现气路之间的通断。工作原理:得电时利用电磁线圈产生的电磁力的作用,推动阀芯运动,实现各个气路的通断,单电控的失电时在弹簧力的作用下回复原位,双电控的保持原位,先导式的按功能而定。几位几通:电磁阀的阀芯有几种位置就是几位,几个气路就是几通电磁阀,一般有2位3通、2位4通、2位5通、3位5通等。电磁阀电压:一般分为220V、110V、24V。功能:在电-气动控制中,电磁阀可以实现的功能有:气动执行组件动作的方向控制,ON/OFF开关量控制,OR/NOT/AND逻辑控制;电磁阀是在气动回路中控制气路通道的通、断或改变压缩空气的流动方向;电磁阀只是气动调节阀的一个附件,是控制气动阀门的气源电路的。下面具体讲解一下二位三通电磁阀的结构:(学电子的同学可以简单理解为单刀双置开关)如下图所示,电磁阀阀芯有2个位置,有3个气路接口,P为气源接口,A为通往气动执行器接口,R为排气接口。1、初始状态(失电):如图2,此时电磁阀失电,阀芯在右侧,A口与R口相通,气缸是排气状态,P口是封闭的。此时AR相通。 图12、工作状态(得电),此时电磁阀得电,阀芯被电磁力吸到左侧,P口如果失电,阀芯在弹簧的作用下回到2的初始状态。此时AP相通。 图2下面讲解一下2位5通单电控直动式电磁阀。1、(失电状态)简单描述为AP,BS。 图32、(得电状态)AR/BP。 图4双电控直动式电磁阀类似。注意哪侧吸电就运动到那一侧。双电控的电池阀具有记忆功能,假如初始状态如下,则右侧得电还是如下: 图5左侧得电则如下 图6电磁阀的图示符号: 图7如果为2位3通电磁阀的电气符号图,图中左侧的方框是指得电状态,右侧是指失电状态,左侧小长方形是指电磁线圈,右侧折线是指弹簧,所以靠近弹簧侧的方框是失电状态,靠近线圈侧的方向是得电状态。默认状态是排气。
2021年12月22日
96 阅读
0 评论
0 点赞
2021-10-06
OpenWRT挂载剩余硬盘和开启网络共享
分区终端登录,输入命令fdisk /dev/sda输入n新建分区,会让设置盘符和分区大小,直接enter默认设置就行新建完后输入w保存。至此分区创建完成。如果出错输入d删除重新分区就可以。格式化分区,输入命令mkfs.ext4 /dev/sda# //#号换成自己的盘符挂载进入OpenWRT后台,系统->挂载点,查看在已挂载的文件系统里面是否自动挂载了分区没有的话在下面的挂载点看看是否有分区,有的话直接点启用然后点保存和应用就可以了如果挂载点也没有就要自己添加了。至此挂载分区完成了。网络共享OpenWRT后台,服务->网络共享。启用root用户,在编辑模版里注掉以下代码,在其前面添加#就可以了。’#invalid user = root’按以上设置就可以了。设置root账户密码,SSH后台输入以下命令。‘smbpasswd -a root’依次输入两次密码就可以了。网络共享就设置完成了。之后在电脑的端连接就可以了右键映射网络磁盘 输入账号密码就可以了。
2021年10月06日
118 阅读
0 评论
0 点赞
2021-10-02
frp+softether_vpn实现外网访问校园网
由于学校的VPN只给老师用。学生用不了,所以在校外就无法访问学校内的资源,如图书馆和教务系统等。也没法看免费的论文。由于宿舍之前搭了台软路由做锐捷认证,刷的LEDE系统,之前也白嫖了一台阿里云的服务器。于是就趁着假期折腾试试看能不能搭个VPN,这样就可以在外网访问了。1、搭建frp内网穿透阿里云服务器上之前用来测试web网站,所以安装了BT面板,这次就直接在BT面板上搭建frp内网穿透,在BT面板的软件商店搜索一圈后发现居然没有frp安装包,想着应该不太可能,就去百度了一下,发现是被下架了,好在论坛里还可以下载,(安装包.zip)下载离线包在BT面板上安装后,在面板和阿里云服务器里放行7000端口,由于后面VPN里要用到1701/500/4500端口,就一起放行了。设置frp服务端,在二级域名位置填上你的域名(直接用IP应该也可以),然后将域名解析到服务器的公网IP上。服务端就全部安装完成了,接下来设置客户端。在LEDE软件商店里安装好frpc。然后配置客户端配置好后内网穿透就弄好了。2、搭建vpnLEDE软件商店里安装VPN全家桶,进入VPN全家桶后开启VPN并下载控制台。开始读秒说明启动成功。安装控制台,选第三个安装管理工具。安装后打开,新建服务端。回到LEDE下设置至此VPN全部搭建好了。3、连接到VPN接下来就可以连接了(以WIN10和IOS为例)
2021年10月02日
267 阅读
2 评论
0 点赞
1
2
3
...
8