自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 Unicode CString 中文转换为 UTF-8 编码并写入文件

C++ MFC CStringW写入中文此方法可行,已经测试。

2024-04-10 10:29:51 124

原创 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

原创 堆栈(Stack)和堆(Heap)

堆栈(Stack)和堆(Heap)是两种不同的内存分配方法,它们的主要区别在于数据存储和访问的方式。

2023-12-06 09:35:24 430

原创 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

原创 Unicode字符集 中将CString 复制到char[]

/使用Unicode字符集。//注意必须+1 才会有结束符。

2023-08-15 11:46:48 74

原创 VS2019 设置注释和取消注释选选定内容

由于老是忘记,换了电脑就不行了,原来默认的太繁琐。每次都去设置选定内容,老是不行。上面这样就可以按一个组合键实现注释和不注释了。

2023-08-14 10:36:55 128

原创 美规线-AWG 芯径和额定电流

美规线-AWG 芯径和额定电流

2023-07-27 11:34:10 325

原创 OPENCV 训练分类器一

第二步,下面是修正过后的Python 将文件夹下面所有的图片转换成灰色小图像,用于存正片用的。第一步,安装OPENCV 见。

2023-06-29 22:57:02 235

原创 步进电机 力矩选型参考

【代码】步进电机 力矩选型参考。 提升时和平称 克服摩擦力时的计算。

2023-06-12 10:29:56 416

原创 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语言 不换行了程序输出%1到%100

自己解决了以下代码就是不换行了程序输出%1到%100。

2022-11-14 17:20:40 1661

原创 PADS PCB伞状连线问题

PADS PCB伞状连线问题

2022-11-03 11:43:51 163

原创 CMD 批处理文件 去后缀名_加日期

CMD 批处理文件 去后缀名_加日期

2022-10-25 16:42:21 776

转载 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

原创 圆周率PI计算 几千年的进展

圆周率 计算历史及其效率 重点在最后二个

2022-08-27 21:10:06 800

原创 关于STM32 PWM频率 周期 Period更新问题

STM32 PWM 周期更新避坑指南

2022-07-28 09:26:50 1937

原创 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

原创 STM32 串口用DMA中断发送问题 掉坑

STM32 DMA中断发送问题

2022-05-06 15:48:22 2888 2

原创 一不小心 就掉入 硬件错误中断 总结

硬件错误中断 总结

2022-03-22 09:02:41 748

转载 FreeRTOS常用函数

FreeRTOS常用函数转载https://www.cnblogs.com/kerwincui/p/14220054.html一、任务任务创建和删除xTaskCreate 任务创建xTaskDelete 任务删除,通过传入NULL值来删除自己任务挂起和恢复vTaskSuspend() 暂停一个任务vTa...

2022-02-19 11:40:58 1167

原创 PADS 常用操作

PADS PCB

2021-12-30 09:45:24 2709

原创 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

原创 PADS 倒圆角

默认是倒直角需要设置如下:然后再选中边框 ,右键增加倒角 ,然后输入半径 ,这样四个角就倒成了圆角

2021-11-16 16:57:15 2061

二相步进电机细分驱动源码 STM32F103VCT6

1.二相步进电机细分驱动源码 STM32F103VCT6 2.STM32 + DMX512 接收程序 或(RS485) 3.光电编码器程序 (没有可开环控制) 4.FSMC TFT驱动程序带菜单功能 5.步进电机细分驱动程序 矢量控制 加减速控制,PWM斩波驱动方式。

2018-08-06

w25n01gv revg 032116.pdf

w25n01gv revg 032116.pdf The W25N01GV (1G-bit) Serial SLC NAND Flash Memory provides a storage solution for systems with limited space, pins and power. The W25N SpiFlash family incorporates the popular SPI interface and the traditional large NAND non-volatile memory space. They are ideal for code shadowing to RAM, executing code directly from Dual/Quad SPI (XIP) and storing voice, text and data. The device operates on a single 2.7V to 3.6V power supply with current consumption as low as 25mA active and 10µA for standby. All W25N SpiFlash family devices are offered in space-saving packages which were impossible to use in the past for the typical NAND flash memory.

2018-08-06

w25n01g 源代码

uint8_t Program_verify(uint8_t* buff1, uint8_t* buff2, uint32_t count); void WB_Serial_NAND_Pageprogram_Pattern(uint8_t addh, uint8_t addl, uint8_t* program_buffer, uint32_t count); void WB_Serial_NAND_Program_Excute(uint8_t addh, uint8_t addl); /* status check */ uint8_t WB_Check_Embedded_ECC(); uint8_t WB_Check_Program_Erase_Fail_Flag(); uint8_t WB_Read_Serial_NAND_StatusRegister(uint8_t sr_sel); void WB_Serial_NAND_ReadyBusy_Check(); uint32_t WB_NAND_Read_JEDEC_ID(); uint8_t WB_Serial_NAND_bad_block_check(uint32_t page_address); void WB_Serial_NAND_LUT_Read(uint16_t* LBA, uint16_t* PBA); /* Stack function for W25M series */ void WB_Die_Select(uint8_t select_die); /* status set */ void WB_Enable_Embedded_ECC(); void WB_Disable_Embedded_ECC(); void WB_Enable_Buffer_mode(); void WB_Disable_Buffer_mode(); void WB_Serial_NAND_StatusRegister_Write_SR1(uint8_t SR1); void WB_Serial_NAND_StatusRegister_Write_SR2(uint8_t SR2); void WB_Serial_NAND_StatusRegister_Write_SR3(uint8_t SR3); void WB_NAND_Reset(); void WB_Protect(); void WB_Unprotect(); void WB_Serial_NAND_LUT_Set(uint16_t LBA, uint16_t PBA); /* erase function */ void WB_Serial_NAND_BlockErase(uint8_t PA_H, uint8_t PA_L); /* read function */ void WB_Serial_NAND_PageDataRead(uint8_t PA_H, uint8_t PA_L); void WB_Serial_NAND_Normal_Read(uint8_t addh, uint8_t addl, uint8_t* buff, uint32_t count); void WB_Serial_NAND_Continuous_Normal_Read(uint8_t* buff, uint32_t count);

2018-08-06

emWinST5.32 VS模拟

官网没找到模拟器 自己搭建了一个 ,找了很久要么版本对不上, 要么没有UI 建立器

2017-11-18

emWin5_V5.42_cn 中文教程

下面一章概述了在目标系统上设置和配置 emWin 的基础步骤,其中还包括简单的程序示例。 如果有不确定的地方请参阅以后部分,后面章节中对大多数主题进行了更为详细的探讨。在您开始更复 杂的编程之前,您最有可能需要参考手册的其它部分。

2017-11-18

C++精确的时间测量的例子

QueryPerformanceCounter VC C++精确的时间测量的例子 精确到US级 PS时容易被打断

2011-01-13

AVR实例 M8 定时器 串口通讯

定时器,外部中断,键盘扫描,串口通讯,数码管扫描

2010-02-03

ASP网站代码本地调试工具

ASP本地调试工具 ASP代码调试 非常方便使用ASP网站的站长 调试 直接在本地调试, 不用上传大量文件到服务器就可以调试的软件 NETweb.exe

2010-01-24

最简单的文章管理系统

最简单的文章管理系统 ASP程序编写 方便初学者或是快速的生成文章的个人网站

2010-01-24

步进电机细分程序39610+3771

步进电机细分程序 39610+3771 供初学者参考

2009-05-09

空空如也

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

TA关注的人

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