- 博客(28)
- 收藏
- 关注
原创 esp8266_wifi模块使用日记(仅自己看)
但是,有一点,ap s sta c这个模块是电脑和另一个模块的中转站,意思是两个都需要ap s sta c的APWiFi,ap s sta c重启了,那么两边都是断掉。相当于服务器的模块,配置的是AP的UDP模式,然后让另一个模块以STA的UDP模式来连接AP,然后用电脑开了两个连接,类似客户端那样的。两者都差不多,但是AP+CIPSTART的指令的意思是,别人的ip和别人端口号,最后一个是自己的端口号,写了就可以固定,不写自动分配。情况2:程序重启,服务器不断电,但是重启会复位模块。
2023-05-30 17:30:18
1157
原创 GD32F470之ADC0+ADC2+DMA(不中断)+多通道采集+吐槽DMA的库和C++的兼容问题
GD32F470之ADC0+ADC2+DMA(不中断)+多通道采集+吐槽DMA的库和C++的兼容问题
2022-08-05 16:13:14
3203
原创 canfestival之心跳和TPDO配置与实验和RPDO的配置与实验与回调函数
心跳的配置配置在1000f到1fff的区间下面看字典生成器的内容内容是把心跳时间配置成1000=0x3e8(ms),,配置这些后,加上一章讲到的定时器和can发送和接收函数的配置,就可以收到1S发送上来的心跳报文。效果:PDO的说明首先给出PDO的一些说明:下面是TPDO和RPDO的cob-id定义,。按道理说,只有4个接收对象和4个发送对象,但是可以自己加。每个对象,都有自己的参数和映射参数(后面再讲),一开始我看的时候,老是不懂什么是对象,其实就是你可以理解为4个结构体,每
2022-04-04 20:44:18
4532
2
原创 Canfestival_移植以及修改移植后的各种bug
移植文件我移植过H7和F7的。我以H7的来说明。H7的CAN有些配置和F7是不一样的。踩过的坑和在这里说一下。把C文件添加到keil中,把头文件的路径也添加上。我移植过程中遇到的问题有:1.注释掉这些文件2我是用keil,但是使用cpp来编译的,所以会有指针不匹配的现象3乱码,这里很发现,虽然报错了,但是找了好久才发现的4。用c++编译的,所以要加上这个,不然会找不到头文件5.其他问题都是些小问题。网上也能找到。2个定时器函数编写这两个定时器函数是被canfestival用来做硬件定时
2022-04-03 18:51:04
2005
1
原创 C++之函数形参不能和类成员同名
今天遇到了一个问题:UDP_Class::UDP_Class(Can_Class * Can_point){ //Can_point = Can_point; 错误 //形参不能和类的成员同名, this->Can_tem_point=Can_point;}看上面的UDP_Classl类,我之前定义了一个类的私有成员Can__point private: Action_Class *Action_Obj_tmp; Can_Class * Can_tem_point; /
2022-03-11 21:46:52
1777
原创 FOC之反park变化推导笔记
直接上图Vd和Vq是Id和Iq电流经过PID控制器后得到的电压值。至于为什么PID出来就是电压值,因为Ud和Uq的公式中有id和iq,两者之间有关系,具体的我给出两个链接。https://blog.csdn.net/lanmanck/article/details/105551779https://www.amobbs.com/thread-5664235-1-1.html之前的clark和park都是对电流的变化。而这个反park那就是对电压的变换,最终得到Ualpha和Ubeta,然后给到
2022-03-10 22:20:05
2106
原创 FOC之park变换推导笔记
直接上图图中的旋转矩阵,在很多地方都用到,包括高频正弦波注入启动(零速或者低速)图中的1234对应坐标系中的1234,*就是把α和β都映射(垂直)到D轴和Q轴,要注意的是θ角的位置该变换把两个正弦波变化的电流,变换成了直流量就能用PID来控制了。下一章再分析反park变化。...
2022-03-10 22:06:39
722
原创 FOC之clark变化推导笔记
如下图FOC的目的就是 从三相正弦信号中解耦出角度信息和幅值信息,而幅值信息又分为D轴电流,负责磁场部分,Q轴电流,负责转矩部分。那么clark变换就是解耦出DQ的第一步 ,为了得到Iα和Iβ的电流可以看到,clark就是把abc电流变换成α和β电流,原理就是矢量分解,也就是abc往α和β轴方向投影(垂直)的长度。由于FOC是等幅值变化,例如Ia变换成Ialpha,幅值是1比1,公式推导中出现了3/2,然后需要乘上一个2/3系数。也有等功率变换,这里我们不讨论 ,给出一个 链接,这里有解释
2022-03-07 22:08:40
1111
原创 电机测试那些事---定子绕线篇
绕线的匝数,定子的材料,会影响反电动势,匝数越高,反电动势越高,定子材料还会影响效率,一些云图上显示的不管转速多块,低扭矩的时候,效率都不高,是因为定子在低电流下的磁场强度不高,不是工作在线性区域。我们现在改用了硅钢片压出来的定子,比铁粉好不少。主要体现在,磁化曲线上,相同电流下,硅钢片的磁场强度更大。,...
2021-08-06 22:14:52
736
原创 电机测试的那些事---测试电机扭矩
之前我们测试电机扭矩的时候发现,当我们在恒定扭矩的情况下,把转速提升上去的时候,发现我们的相电流,或者是Iq电流并没有随着转速的提升而提升,按道理先说,功率 = 转速 * 扭矩,那么我转速上去了,功率应该上升,功率上升,P = U *I 。电压不变,电流应该会上升现在发现是因为,转速上去了,反电动势上去了,转速和反电动势的关系是呈线性提升的,那么我测出来的电流就是我们给的电流减去反电动势的电流,那么,实际的电流也是差不多,不会因为转速的提升而提升。...
2021-08-06 22:07:43
3067
3
原创 关于 UREF 所在的位置和开关切换顺序对照序与3-2结构电机的关系
A相一段PWM给A的开关管B相也是,C相也是, 可是ABC是同时输出去的。那么3段PWM,3个开关管就会在不同时间对应不同的开关状态。例如图13-2电机所示,该图表示的是转过机械角度45度,abc开关管的开关状态而,文档上的扇区的ABC三项波形图,如图2所示,表示的话下面两两为一组(相差7.5度)时(也就是在扇区内)的波形图。假如I为1,0为0,可以表示为101100110010011001对应了下图像这种,就是通过不同的T1-T6的时间来改变图3中Uref的方向和大小。但是
2021-05-22 16:33:46
661
原创 SVPWM所需要掌握的一些定理
1,正弦定理。2.伏秒平衡(不懂)伏秒平衡: 又称伏秒平衡,是指开关电源稳定工作状态下,加在电感两端的电压乘以导通时间等于关断时刻电感两端电压乘以关断时间,或指在稳态工作的开关电源中电感两端的正伏秒值等于负伏秒值。在SVPWM中,磁链等于电压对时间的积分所以单位时间内此联的等效原理:U*T = U1 *T1 + U2 *T23.平均值等效原理(不懂)即在一个开关周期内通过对基本电压矢量加以组合,使其平均值与给定电压矢量相等...
2021-05-22 14:57:06
895
原创 关于电机制作的一些事
最近在做电机的项目,需要从电机的结构,电机定子和永磁体开始上手,所以在这里写点东西。我们做过24定子16永磁体的电机,那么ABC占了45度,一对永磁体占也占了45度,一个A是15度,一个永磁体是22.5,所以换相周期的7.5度,什么是换相周期,定子A切换永磁体N或者S就为一个周期,一个ABC(45度)就有6个周期,其实刚好是SVPWM的一个扇区。今天发现24定子和20永磁体的电机反电动势出来不是一个相位相差120度的。原因是因为,计算相位差听一个哈工大的大佬说,是定子的所占的机械角度 * 极对数,
2021-05-20 21:24:25
309
原创 python一个类里的各个函数怎么相互调用变量
直接上代码class aun(): def t_self(self): self.b=0 self.i =0 if self.i<10: print("t_self "+str(self.i)) def text_val(self): self.b =5 def text_change_val(self): print("text_change_val "+str(s
2021-04-01 21:53:12
2556
原创 Python对类的成员直接赋值和类对象的成员赋值的区别
##做个简单的测试##创建一个类class aun(): a=8##测试代码def text1(): a_text = aun() b_text = aun() aun.a =10 print("1 " + str(a_text.a)) print("2 " + str(b_text.a)) print("3 " + str(aun.a)) a_text.a =5 b_text.a =3 print(
2021-03-31 22:43:37
1289
原创 pycharm+anaconda+QtDesigner的环境配置
首先下载anaconda,可以去官网下载,也可以去清华的镜像文件网站下载。#anaconda3下载anaconda3自带python,QT等一堆。前往官网下载:https://www.anaconda.com/downloads#macos下载完成后进行环境配置E:\python\anaconder这个路径是我的anaconda的安装路径,按自己的情况修改。#PyQt5和PyQt5-tools下载,这是在pycharm使用QT的关键,不然使用designer生成的ui,运行的时候后识别不
2021-03-24 11:39:36
1148
1
原创 关于STM32的C++使用的那些事,(C工程变C++工程),new和delete的实现
最近要用到C++来写keil工程,要把之前的C工程变成C++工程,好家伙。学习一下keil怎么建立一个C++工程,还有STM32在C++语言下怎么兼容C。1.keil工程的魔法棒设置我这里选择的是版本5,我看网上说要版本6,不是很理解。然后选择不要使用微库,C++不支持MicroLIB2.选择编译的方法把C99Mode选项去掉,然后改成–cpp113.把中断函数全部都要加extern “C”例如或者在头文件中加上#ifdef __cplusplus extern "C" {#end
2021-03-17 11:23:53
2754
1
原创 关于STM32H745xI双核的SRAM内存分配问题
最近工程中遇到的一些问题,做个笔记M7的共享内存不能是0x3000_0000开头的SRAM1,因为如果让这个地址写东西,就相当于覆盖了M4的RAM(0x1000_0000),实验现象是,我M7内核往0x3000_0000写数据,结果M4的SystemD2Clock全局变量和struBitOutput_M4会默认的被修改,struBitOutput_M4被修改,所以Q01被输出,软启动莫名开启。手册上的一些说明:M7运行内存(0x2400_0000到0x2407_FFFF)一共512KM4运行内存
2021-03-13 12:31:08
2660
4
原创 关于H745xI双核板子Boot_IAP跳转APP程序的那些事
关于H745xI双核板子Boot_IAP跳转APP程序的那些事关于IAP跳转APP的程序,网上一大堆,官方CubeMX的例程也有,我就不废话了。直接上代码这是M4内核的跳转代码void Flash_M4_Class::iap_Jmp_To_app_M4(u32 appxaddr) { /* Test if user code is programmed starting from address "APPLICATION_ADDRESS" */ if (((*(__IO uin
2021-03-13 12:24:52
844
1
原创 关于STM32H745xI双核芯片的SMPS和LDO配置,导致芯片无法复位,无法下载程序
关于STM32H745xI双核芯片的SMPS和LDO配置最近在项目中遇到程序上电能跑,然后软件复位,或者按键复位的时候会跑不起来,无法复位,而且不能下载程序。一开始怀疑是Boot0(双核的只有BOOT0,没有BOOT1)引脚虚焊,后来做了一个按钮,用来上拉下拉,由于不能下载程序,那么只能上拉BOOT0,跳到默认的地址,这个是ST自带的程序,是可以下载的。上拉是可以下载了,下拉跑自己的程序的时候还是会不能复位。后来又怀疑是代码配置的问题,因为程序是H745ZIT6的代码,引脚是144的,H745IIT
2021-03-11 16:45:35
6403
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人