- 博客(78)
- 资源 (10)
- 收藏
- 关注
原创 永磁同步电机 开发日志_ 伺服步进驱动
我觉得我应该写点什么了从去年10月,也就是2019年10月15号开始研究永磁同步驱动,一个漫长的学习过程终于理解了 磁场定向控制的基础理论, 实际操作让电机转起来,还是不太容易的.想要转好,难上加难比如:1.现在的有感,弱磁(反向电动势超过母线电压时,调整相电流超前相电压,达到弱磁的目的),母线电压在变,弱磁多少也在变.不能让电机失控2.在超过2倍基速时(...
2020-05-03 17:42:24 539
原创 TCP(Transmission Control Protocol,传输控制协议)如何保证数据的完整性?
当接收方收到数据后,会发送一个包含最新收到数据序列号的ACK报文给发送方,确认数据已收到。:TCP使用三次握手建立连接,确保双方准备好进行数据传输,四次挥手断开连接,确保双方都知晓连接的终止,进一步确保数据传输的完整性。:发送方为每个发送的数据包设置一个计时器。:TCP还实现了拥塞窗口的概念,用于动态调整发送速率以应对网络拥塞情况,防止过多的数据注入到网络中,这有助于减少数据包的丢失。:通过滑动窗口机制,TCP允许接收方告知发送方其缓冲区的可用空间大小,从而控制发送方的发送速率,避免数据溢出导致数据丢失。
2024-05-08 11:06:26 147
原创 ZCANPRO的实时曲线真的可以
如果他们再推出一款像freemaster一样的CAN通讯工具,就爽了。不光能看,还能通过MAP和OUT文件设置MCU内部的变量参数。
2024-04-18 08:39:23 264
原创 非对称加密(Asymmetric Cryptography)
这两把密钥互相关联但不能互相推算得出对方,也就是说,即使知道了其中一个也无法计算出另一个。非对称加密的工作原理主要基于数学上的难解问题,如大数因子分解问题(RSA算法)、离散对数问题(Diffie-Hellman密钥交换、ElGamal加密算法)或椭圆曲线上的运算(ECC,Elliptic Curve Cryptography)等。由于只有知道私钥d的人才能顺利执行解密操作,所以在不知道私钥的情况下,即便知道公钥和加密后的信息,攻击者也无法轻易破解得到原始的明文信息,从而实现了信息的安全传输。
2024-04-10 17:54:16 314
原创 CANFD通讯数据64字节,强制成结构体类型的做法---用C语言
在处理通信数据时,特别是当数据按照特定结构体的布局在网络上传输时,你可能需要将接收到的字节流转换为相应的结构体类型。请注意,如果涉及跨平台通信,还需要考虑字节序问题,尤其是对于非字符类型的数据成员(如uint32_t、double等),可能需要在转换前或转换后做适当的字节序转换(如使用。是为了防止编译器在结构体内部插入额外的填充字节以对齐结构体成员,这对于按固定字节顺序传输的数据非常重要。等函数处理网络字节序和主机字节序的不同)。
2024-04-10 08:45:34 214
原创 Microsoft Windows操作系统中,创建线程
是Windows SDK提供的原生API函数,用于创建一个新的线程。它接受一系列参数,包括线程安全属性、堆栈大小、线程入口地址(即线程开始执行的函数)、传递给线程函数的参数、线程创建标志(如是否立即运行或挂起),以及一个可选的输出参数来接收线程ID。两者都能创建新的线程,但在不同的场景下可能会有不同的优缺点。在大多数情况下,除非需要C运行时库提供的特定功能或者需要控制线程结束后的清理行为,就已经足够满足创建线程的需求。相比,它允许更多的控制,比如线程的存储模型,并且创建的线程句柄可以直接用于。
2024-04-07 10:16:35 254
原创 STM32G系 编程连接不上目标板,也有可能是软件不兼容。
电源脚 VDDA 地线,SWD的四条线,还是不行,浪费了一天,第二天才想起,是不是G系升级了 SWD协议。结果下载最新版STM32 ST-LINK Utility4.60,就OK了。由于一直用的老版本STM32 ST-LINK Utility 4.20 ,找遍了所有问题,SWD就是连不上目标板。
2024-04-01 08:45:03 277
原创 PCB Layout完成后,检查注意事项
特别是用的别人的原理图,要特别检测封装脚位号是否与原理图一致,否则极性反了。是否阻容元件离主元件太远,布置方向反过来,线更短等问题。检查关键芯片电源线和地线是否足够粗,以承受预期的电流。检查对温度敏感元件是否距发热元件太近。是否一致和接对,相关网络是否接通。PCB设计软件中的DRC工具。
2024-03-01 14:27:11 425
原创 VS2019 -nan(ind) 错误
一个函数返回值为-nan(ind), 除数不为0,也没有对负数开方,怎么会呢。但是VS编译的时候没有报错。看来以后警告得全部去掉。定位了很久,结果不是该函数,而是函数之前的。
2023-09-25 17:08:07 231
原创 切线迭代找根的方法 mathematica
FindRoot[x^3 == 10, {x, 1}] (* 直接找根的方法 *)(* 切线迭代找根的方法 *)例: x^3-10 = 0,求x。
2023-09-21 15:46:28 170
原创 VS2019 设置注释和取消注释选选定内容
由于老是忘记,换了电脑就不行了,原来默认的太繁琐。每次都去设置选定内容,老是不行。上面这样就可以按一个组合键实现注释和不注释了。
2023-08-14 10:36:55 128
原创 OPENCV 训练分类器一
第二步,下面是修正过后的Python 将文件夹下面所有的图片转换成灰色小图像,用于存正片用的。第一步,安装OPENCV 见。
2023-06-29 22:57:02 235
原创 CRC碰撞概率 与CRC校验长度的理解
而不管校验的长度是多少字节,只要同时错这么多个位。不管你校验多长的字节数,CRC8的计算结果都是256BIT CRC16 是65536BIT。2.就是16BIT CRC16 同时错200个BIT 碰撞的概率是0.2% ,同时错800个BIT 碰撞的概率约是99%prst0[n_, d_] := 1 - d!(*取值空间为d,取值范围为n*)1.就是8BIT CRC8 同时错10个BIT 碰撞的概率是0.2% ,同时错50个BIT 碰撞的概率约是99%
2022-11-20 17:39:59 3987 1
原创 巨坑的STM32 定时器从模式 外部时钟 --------高速脉冲计数源码
TIM_SLAVEMODE_GATED //低电平时计数器启动计数,高电平时停止计数。TIM_SLAVEMODE_EXTERNAL1 //触发源做为时钟 记数 这个功能很好。TIM_SLAVEMODE_RESET //触发源 复位从定时器CNT。TIM_SLAVEMODE_TRIGGER //可选内部时钟和外部时钟。TIM_SLAVEMODE_DISABLE //禁用从模式。
2022-11-16 20:56:44 2652
转载 C++类中 不同对象之间共享数据之 静态变量
使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。但是,全局变量或对象是有局限性的。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员。(3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。
2022-10-18 16:40:09 1263
原创 FreeRTOS三种数据结构区别(StreamBuffer,MessageBuffer,Queue)
FreeRTOS三种数据结构 StreamBuffer,MessageBuffer,Queue
2022-08-30 08:51:09 1127
原创 STM32 CAN 滤波为什么要左移5位
can通信重点: 注意MAPPING ID给左对齐的一般都是右对齐,他们来了一个左对齐,我说怎么一个掩码还要左移5位
2022-07-05 17:21:33 572
原创 STM32 HAL 用DMA+空闲中断接收不定长数据
这里的 这二行比较关键, 第一:是禁止DMA 这里才能设置DNTR. 第二:还必须等待设置成功 里面有这么一句 while((hdma->Instance->CR & DMA_SxCR_EN) != RESET){};/* Clear all interrupt flags at correct offset within the register */ regs->IFCR = 0x3FU StreamIndex;如果不要HAL_DMA_Abort(),测试发现 发二帧,第一......
2022-07-01 12:29:25 766
原创 STM32 BOOT 跳到APP异常 检查
1.检查stm32f407xx_flash.icf 其它MCU一样 *.icf文件中 中断向量地址,我这里设置的0x08008000, 8000的偏移地址。2.用HAL库必须定义 USER_VECT_TAB_ADDRESS 并设置VECT_TAB_OFFSET (偏移大小根据自己的BOOT BIN文件大小)3. 反初始化所有IO ,外设 UART ,SPI,DMA, RCC等,然后关中断 __set_FAULTMASK(1); /* 禁止全局中断*/ 包含错误中断也禁止4. 从来没碰到过PLLQ BOOT
2022-06-08 16:31:06 1924
原创 稳定的环形队列--经过严格测试(普通+FREERTOS)
相比于定长队列,环队队列在省空间方面有很大的优势。可以缓存变长的数据。裸机队列:typedef struct{ u16 front; u16 rear; u16 length; u8 data[USART_QUEUE_SIZE];} type_usart_queue;//============================================================================================............
2022-05-20 17:34:55 475 2
原创 VSCODE C语言突然又不能跳转到定义了
VSCODE 真是想说爱你不容易啊三天二头的不能跳到定义,跳转定义时,每次都要新打开一个文件 ,而且以前打开的,也不会理你,感觉是那么弱痴一样。没办法谁叫没更好用的编辑工具呢在网上找了半天,结果 是C/C++插件切换到了预发布版本,切换回来重启一下软件,就行了。...
2022-05-19 08:47:32 966 3
原创 STM32F407 CCMRAM 做为STACK HEAP
如何利用这 64K的 CCM-RAMCCM-RAM只能被MCU核心访问,不能被外设包含DMA访问。place in ROM_region { readonly };place in CCMRAM_region { block CSTACK, block HEAP }; ///用它做为堆栈place in RAM_region { readwrite };------------------------------------------------------------...
2022-05-17 15:14:41 406
原创 C语言 宏定义限制大小 及限制范围
C语言 宏定义限制大小 及限制范围#define MaxLimit(a,max) ((a)>(max)?(max):(a))#define MinLimit(a,min) ((a)<(min)?(min):(a))#define LIMIT_VAL(a,min,max) ((a)<(min)?(min):((a)>(max)?(max):(a)))
2022-05-17 09:46:13 2342
转载 FreeRTOS常用函数
FreeRTOS常用函数转载https://www.cnblogs.com/kerwincui/p/14220054.html一、任务任务创建和删除xTaskCreate 任务创建xTaskDelete 任务删除,通过传入NULL值来删除自己任务挂起和恢复vTaskSuspend() 暂停一个任务vTa...
2022-02-19 11:40:58 1167
原创 IAR 与 VS CODE 编码问题
在使用二款软件切换的时候,IAR保存到VS CODE乱码,VSCODE保存切换到IAR乱码,终于解决了,见下图。
2021-11-26 17:38:11 928
转载 CMSIS-RTOS2 文档翻译 之 功能概述 转载
为了方便找 转载于CMSIS-RTOS2 文档翻译 之 功能概述 - STM32团队 ST意法半导体中文论坛功能概述CMSIS-RTOS v2 提供了多种 API 接口:CMSIS-RTOS2是支持动态对象创建和 Armv8-M(Arm Cortex-M23 和 Cortex-M33)的新 C 函数 API 。 CMSIS-RTOS C API v1是与 CMSIS-RTOS v1 向后兼容的 C 函数 API 。 CMSIS-RTOS C++ API是一个 C++ 类函数 ...
2021-11-19 15:16:48 1088
二相步进电机细分驱动源码 STM32F103VCT6
2018-08-06
w25n01gv revg 032116.pdf
2018-08-06
w25n01g 源代码
2018-08-06
emWin5_V5.42_cn 中文教程
2017-11-18
ASP网站代码本地调试工具
2010-01-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人