自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (10)
  • 收藏
  • 关注

原创 永磁同步电机 开发日志_ 伺服步进驱动

我觉得我应该写点什么了从去年10月,也就是2019年10月15号开始研究永磁同步驱动,一个漫长的学习过程终于理解了 磁场定向控制的基础理论, 实际操作让电机转起来,还是不太容易的.想要转好,难上加难比如:1.现在的有感,弱磁(反向电动势超过母线电压时,调整相电流超前相电压,达到弱磁的目的),母线电压在变,弱磁多少也在变.不能让电机失控2.在超过2倍基速时(...

2020-05-03 17:42:24 591

原创 1US内的同步通讯 有哪些协议和通讯方式?

**特点**:它使用了专用硬件和改进的算法来进一步减少抖动和延迟,适用于对时间同步有极高要求的应用场景,比如粒子物理实验。- **描述**:IEEE 1588 PTP是一种网络时间同步协议,旨在通过以太网等网络提供亚微秒级的时钟同步精度。- **特点**:这类模块往往针对具体应用场景优化,能够在保证一定范围内的移动性的同时保持较高的同步精度。- **特点**:这种方法仍然依赖于NTP协议的基本框架,但是增加了硬件层面的支持以提高时间戳的准确性。### 6. 专用同步模块。### 5. 光纤传输。

2024-09-29 09:35:45 366

原创 Hamming码 ECC错误检测纠正

**错误检测与纠正**:接收端收到编码后的信息后,会重新计算每个校验位,并与接收到的信息中的校验位进行比较。- **数据位与校验位**:假设原始数据包含k个数据位,那么通过添加r个校验位后,整个编码后的字长为n=k+r。校验位的位置通常是2的幂次(即第1, 2, 4, 8, ...位),而其余位置用于存放数据位。- **校验位的计算**:每个校验位负责检查包括它自己在内的特定组的数据位。- 第3个校验位(P4)覆盖4, 5, 6, 7, 12, 13...等位(即二进制下第3位为1的所有位置)。

2024-09-27 11:50:22 158

原创 C++类中采用位域时为什么不能使用字节对齐?

共用体允许你在相同的内存位置存储不同类型的数据,这意味着你可以将位域和非位域的数据放在同一个内存区域中。这样,你可以通过位域来操作数据,同时也能直接访问底层的字节数据,从而方便地进行HEX格式的转换和发送。在C++类中使用位域(bit-fields)时,不能直接应用字节对齐的原因主要是因为位域的布局和对齐是由编译器控制的,并且与具体的实现相关。这样可以绕过位域的对齐问题。通过这种方式,你可以通过位域来设置数据,然后通过共用体中的原始字节数组来访问这些数据的底层表示,从而方便地进行HEX格式的转换和发送。

2024-09-19 09:07:16 364

原创 血氧仪测量原理

血氧仪的测量部位通常是耳垂或指尖,因为这些部位有丰富的末梢循环血液,能够准确反映人体的血氧状况。血氧仪的使用方便、快捷,广泛应用于医院、家庭等场合,特别是在监测呼吸系统疾病、心血管疾病等患者的血氧饱和度时具有重要意义。血氧仪,也称为脉氧仪,是临床上比较常用的一种无创测血氧状况的仪器。其主要通过手指血氧测量血氧饱和度,原理是利用LED光电探测器分辨不同波长的比例,从而计算氧合血红蛋白的含量。

2024-09-13 08:42:01 161

原创 STM32H7 如何使用ITCM DTCM?

STM32H7系列微控制器中的ITCM()和DTCM()是两块高速内存区域,它们通过专用的TCM总线直接与Cortex-M7核心相连,提供了极高的访问速度。

2024-09-10 10:26:49 468

原创 IAR 调试程序进入EXIT_0, 可能是什么问题?

IAR调试程序时进入EXIT_0,通常表示程序在执行过程中遇到了某种异常或错误,导致它提前退出。

2024-09-10 08:54:28 440

原创 CMSIS RTOS2 的主要函数有哪些?

CMSIS-RTOS2(Cortex Microcontroller Software Interface Standard Real-Time Operating System API version 2)是在基于Arm Cortex处理器的设备上运行的实时操作系统内核上指定的通用RTOS接口。它提供了一套丰富的API,以便应用程序和中间件组件能够在不同的RTOS内核上实现更好的代码重用和更简单的集成。

2024-09-06 15:34:49 794

原创 在C++中成员初始化的区别

在你的例子中,m_strCH1m_strCH2等字符串变量和m_nSlider1m_Addr等内置类型变量通过成员初始化列表进行初始化,这是推荐的做法,因为它们避免了不必要的默认构造和赋值开销。而等复杂类型或数组可能需要在构造函数体内使用memset或其他方式进行初始化,因为它们可能需要更复杂的初始化逻辑。

2024-09-05 14:56:55 240

原创 全球主要论文知识库-学习资源

以下是一些。

2024-09-05 10:01:28 348

原创 FreeRtos CMSIS V1和V2有什么区别?

CMSIS(Cortex Microcontroller Software Interface Standard)是ARM公司推出的一种基于CORTEX内核微处理器的软件接口标准,它旨在简化微控制器软件开发,为开发人员提供一致且高效的接口。CMSIS分为不同的版本,其中V1和V2是两个重要的版本,它们在多个方面存在区别。

2024-09-03 15:37:00 494

原创 嵌入式是用C++还是用C的架构 怎么选?

综上所述,选择使用 C++ 还是 C 的架构需要综合考虑语言特性、项目需求、开发周期和成本等因素。在实际选择时,可以根据具体情况进行权衡,选择最适合项目的架构。如果项目需要面向对象编程、泛型编程、丰富的标准库等高级特性,并且对性能要求不是特别严格,那么 C++ 可能是更好的选择。如果项目对性能要求极高、可移植性要求高,或者团队对 C 语言更加熟悉,那么 C 架构可能更加合适。

2024-09-02 14:47:41 758

原创 【C++】如何解决“pointer to incomplete class type is not allowed”。

这个错误信息 “pointer to incomplete class type is not allowed” 在 C++ 中通常表示你正在尝试使用一个尚未完全定义的类的指针。总之,这个错误通常是由于类定义不完整或缺少必要的头文件包含引起的。通过检查类的定义和头文件的包含情况,可以解决这个问题。

2024-08-29 14:54:10 298

原创 如何测量空气中的氧含量?

在选择测量方法时,需要考虑的因素包括精度要求、成本、响应时间以及是否需要便携性等。例如,在工业安全、潜水、航空航天和医疗领域,通常使用电化学传感器或顺磁氧分析仪来实时监测氧气水平。而在科研领域,可能更倾向于使用红外吸收光谱法或激光吸收光谱技术来获得更高的精度。测量空气中氧气(O2)的含量通常可以通过几种不同的方法来完成。

2024-08-15 08:59:32 315

原创 深度摄像头 用什么来采集深度?

这些技术各有优缺点,在不同的应用场景中发挥着重要作用。比如,结构光技术在近距离测量中精度较高,ToF 技术适合中远距离和快速测量,双目立体视觉技术则在一些需要较大视场和较高分辨率的场景中表现出色。

2024-07-26 09:51:23 273

原创 电机选型-转动惯量计算

步进电机选型 钢体转动 按长方体近似计算。

2024-07-25 18:03:14 130

原创 STM32中的I2S(Inter-IC Sound)接口和SA接口(Serial Audio Interface)的区别

兼容性:I2S是SAI的一个子集,所有I2S设备理论上都可以通过配置SAI接口来兼容。灵活性:SAI提供更多的配置选项,支持更广泛的音频传输协议,适合更复杂和多样化的音频应用需求。选择依据:如果应用只需要基本的数字音频传输功能,I2S可能已经足够。而对于需要更高级特性和兼容多种音频标准的系统,SAI将是更好的选择。

2024-07-02 15:48:16 1051 1

原创 MOS管的结温估算

MOS管表面温度(𝑇𝑠Ts​)的检测可以通过直接粘贴温度传感器如热敏电阻、热电偶或使用红外温度计进行非接触式测量来实现,如前文所述。

2024-07-02 08:58:52 1114

原创 YOLO 在OPENCV QT上如何使用?

YOLO(You Only Look Once)是一种广泛应用于目标检测的任务的算法。.yaml以下是一个简化的代码示例(假设使用PyTorch和YOLOv5):Python。

2024-06-28 09:16:22 1183 1

原创 关于FreeRTOS在MCU(微控制器)和PC(个人计算机)上的源代码的区别

综上所述,FreeRTOS在MCU和PC上的核心源代码是相同的,但配置文件、移植层代码和应用程序代码是不同的。这些不同之处主要是为了满足不同硬件平台的硬件资源、性能特性和实时性要求。在编写和配置FreeRTOS时,需要根据具体的硬件平台和应用需求来选择合适的配置文件和编写相应的移植层代码。

2024-06-27 16:13:02 363 1

原创 EtherCAT 和 UDP 通讯的实时性 区别

EtherCAT 使用主从架构,并采用“加工转发”(Processing on the Fly)技术,即数据帧在通过每个从站时被读取或写入,无需存储和重新传输,大大减少了通信延迟。UDP的设计初衷是为了提供快速、低开销的数据传输,适用于那些能够容忍一定数据丢失或不需要可靠传输的应用场景,如音视频流、在线游戏等。虽然UDP本身不提供实时保证,但在某些实时性要求较高的应用中,通过适当的软件设计和网络配置,UDP可以被用于构建实时通信系统。

2024-06-03 14:42:31 646

原创 UNICODE编码格式读取文件并显示在LIST

UNICODE编码格式读取文件并显示在LIST。提供两种方法,第一种比较简单。第二种根据自己需求定长度。

2024-05-24 14:58:50 208

原创 在 MFC 中 UNICODE 加 _T 与 L 长字符串,有什么区别?

T提供了字符集无关的字符串定义方式,适用于希望代码在不同字符集配置下都能工作的场景。L强制字符串为Unicode宽字符形式,适用于明确需要宽字符串的场景,无论项目配置如何。在处理长字符串时,两者的主要区别在于_T提供了灵活性和兼容性,而L则直接明确地指定了Unicode编码,不考虑项目字符集配置。对于长字符串,选择哪种方式取决于你的具体需求和对代码兼容性的考量。

2024-05-23 14:52:15 582

原创 溶解氧测量仪主要基于两种测量原理:极谱法和荧光法。

溶解氧测量仪主要基于两种测量原理:极谱法和荧光法。

2024-05-11 08:46:08 571

原创 TCP(Transmission Control Protocol,传输控制协议)如何保证数据的完整性?

当接收方收到数据后,会发送一个包含最新收到数据序列号的ACK报文给发送方,确认数据已收到。:TCP使用三次握手建立连接,确保双方准备好进行数据传输,四次挥手断开连接,确保双方都知晓连接的终止,进一步确保数据传输的完整性。:发送方为每个发送的数据包设置一个计时器。:TCP还实现了拥塞窗口的概念,用于动态调整发送速率以应对网络拥塞情况,防止过多的数据注入到网络中,这有助于减少数据包的丢失。:通过滑动窗口机制,TCP允许接收方告知发送方其缓冲区的可用空间大小,从而控制发送方的发送速率,避免数据溢出导致数据丢失。

2024-05-08 11:06:26 607 1

原创 ZCANPRO的实时曲线真的可以

如果他们再推出一款像freemaster一样的CAN通讯工具,就爽了。不光能看,还能通过MAP和OUT文件设置MCU内部的变量参数。

2024-04-18 08:39:23 1042

原创 非对称加密(Asymmetric Cryptography)

这两把密钥互相关联但不能互相推算得出对方,也就是说,即使知道了其中一个也无法计算出另一个。非对称加密的工作原理主要基于数学上的难解问题,如大数因子分解问题(RSA算法)、离散对数问题(Diffie-Hellman密钥交换、ElGamal加密算法)或椭圆曲线上的运算(ECC,Elliptic Curve Cryptography)等。由于只有知道私钥d的人才能顺利执行解密操作,所以在不知道私钥的情况下,即便知道公钥和加密后的信息,攻击者也无法轻易破解得到原始的明文信息,从而实现了信息的安全传输。

2024-04-10 17:54:16 427

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

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

2024-04-10 10:29:51 354

原创 CANFD通讯数据64字节,强制成结构体类型的做法---用C语言

在处理通信数据时,特别是当数据按照特定结构体的布局在网络上传输时,你可能需要将接收到的字节流转换为相应的结构体类型。请注意,如果涉及跨平台通信,还需要考虑字节序问题,尤其是对于非字符类型的数据成员(如uint32_t、double等),可能需要在转换前或转换后做适当的字节序转换(如使用。是为了防止编译器在结构体内部插入额外的填充字节以对齐结构体成员,这对于按固定字节顺序传输的数据非常重要。等函数处理网络字节序和主机字节序的不同)。

2024-04-10 08:45:34 319

原创 Microsoft Windows操作系统中,创建线程

是Windows SDK提供的原生API函数,用于创建一个新的线程。它接受一系列参数,包括线程安全属性、堆栈大小、线程入口地址(即线程开始执行的函数)、传递给线程函数的参数、线程创建标志(如是否立即运行或挂起),以及一个可选的输出参数来接收线程ID。两者都能创建新的线程,但在不同的场景下可能会有不同的优缺点。在大多数情况下,除非需要C运行时库提供的特定功能或者需要控制线程结束后的清理行为,就已经足够满足创建线程的需求。相比,它允许更多的控制,比如线程的存储模型,并且创建的线程句柄可以直接用于。

2024-04-07 10:16:35 292

原创 STM32G系 编程连接不上目标板,也有可能是软件不兼容。

电源脚 VDDA 地线,SWD的四条线,还是不行,浪费了一天,第二天才想起,是不是G系升级了 SWD协议。结果下载最新版STM32 ST-LINK Utility4.60,就OK了。由于一直用的老版本STM32 ST-LINK Utility 4.20 ,找遍了所有问题,SWD就是连不上目标板。

2024-04-01 08:45:03 484

原创 PCB Layout完成后,检查注意事项

特别是用的别人的原理图,要特别检测封装脚位号是否与原理图一致,否则极性反了。是否阻容元件离主元件太远,布置方向反过来,线更短等问题。检查关键芯片电源线和地线是否足够粗,以承受预期的电流。检查对温度敏感元件是否距发热元件太近。是否一致和接对,相关网络是否接通。PCB设计软件中的DRC工具。

2024-03-01 14:27:11 771

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

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

2023-12-06 09:35:24 481

原创 VS2019 -nan(ind) 错误

一个函数返回值为-nan(ind), 除数不为0,也没有对负数开方,怎么会呢。但是VS编译的时候没有报错。看来以后警告得全部去掉。定位了很久,结果不是该函数,而是函数之前的。

2023-09-25 17:08:07 335

原创 切线迭代找根的方法 mathematica

FindRoot[x^3 == 10, {x, 1}] (* 直接找根的方法 *)(* 切线迭代找根的方法 *)例: x^3-10 = 0,求x。

2023-09-21 15:46:28 233

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

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

2023-08-15 11:46:48 133

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

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

2023-08-14 10:36:55 182

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

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

2023-07-27 11:34:10 1060

原创 OPENCV 训练分类器一

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

2023-06-29 22:57:02 270

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

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

2023-06-12 10:29:56 449

二相步进电机细分驱动源码 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关注的人

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