- 博客(55)
- 资源 (4)
- 收藏
- 关注
原创 【freertos互斥量补充】递归锁
摘要:递归锁(RecursiveMutex)是一种特殊的互斥量,允许同一任务多次获取同一把锁而不会导致死锁。与普通互斥量不同,递归锁内部使用计数器记录获取次数,必须通过配对释放(获取多少次就释放多少次)来解锁。适用场景包括嵌套函数调用需要同一把锁的情况。FreeRTOS中通过xSemaphoreCreateRecursiveMutex()创建,使用xSemaphoreTakeRecursive()和xSemaphoreGiveRecursive()进行获取和释放。示例代码展示了多个任务使用递归锁协调访问共享
2025-06-15 17:37:56
357
原创 3分钟搞懂FreeRtos中的互斥量
摘要:本文探讨了互斥量(mutex)在多任务系统中的重要性及其实现机制。相比信号量,互斥量通过二进制信号量+优先级继承+递归锁的特性,有效解决了任务互斥中的关键问题:1)防止第三方任务意外释放导致冲突;2)避免死锁;3)通过优先级继承机制消除优先级反转问题。文章通过FreeRTOS示例展示了优先级反转现象(低优先级任务阻塞高优先级任务),以及使用互斥量时优先级继承机制如何提升系统实时性(持有互斥量的低优先级任务临时继承高优先级)。实验代码对比了二进制信号量和互斥量在不同优先级任务竞争时的行为差异,验证了互斥
2025-06-15 16:30:40
342
原创 1分钟理解FreeRtos中的信号量知识
摘要:信号量是一种计数器机制,用于任务间同步。二进制信号量(初始值为0或1)和计数信号量(可设定初始值)可通过动态或静态方式创建。操作包括give(释放)和take(获取),支持在任务和中断服务程序(ISR)中使用。示例展示了计数信号量的应用:Task1完成计算后释放信号量,Task2获取信号量后输出结果。vSemaphoreCreateBinary已过时,建议使用xSemaphoreCreateBinary。信号量有效解决了任务同步与阻塞唤醒问题。
2025-06-13 16:39:36
275
原创 【解决串口数据丢包问题】下位机环形缓冲区+上位机串口生产者-消费者不定长接收(基于keil5和Labview)
摘要:本文探讨串口通信中的丢包问题及其解决方案。串口丢包表现为数据残缺、校验异常和频率下降等问题。为解决该问题,文章提出采用环形缓冲区结构(定义1024字节缓冲区,包含读写指针),并详细介绍了缓冲区初始化、读写操作的实现方法。在下位机编程中,通过改写串口中断处理函数和fgetc实现数据缓存。上位机采用Labview的生产者-消费者模式处理不定长数据,通过消息队列缓冲解决传输与处理速度不匹配问题。该方案有效提高了串口通信的可靠性。【解决串口数据丢包问题】下位机环形缓冲区+上位机串口不定长接收1.下位机使用
2025-06-10 19:07:29
468
原创 为什么通过内部参考电压VREFINT算出来我的外部参考电压是1.5V的问题(实际上我给的外部电压为3.0V)
如图,在设计PCB(芯片型号stm32G431CBT6)的时候我采用的是REF3030即3.0V的基准源连接在了VREF+引脚。adc1测出来的值在3187左右,那么反过来计算VREF+只有1.5V左右,但是实测结果是3.0V.。使用如下方式进行VREF+的计算:(这里用的是ADC1的通道18测VREF+)不知道有没有大佬知道是为什么。
2025-05-21 16:00:01
272
3
原创 AD21导出Gerber文件到嘉立创,9个步骤轻松解决
9.同样不保存关掉,然后在工程文件的路径下找到文件夹“Project Outputs for ‘你的工程文件名’ ” 进行压缩,上传嘉立创即可,另外嘉立创打板设置可以参考B站这个【嘉立创下单助手免费打板教程-哔哩哔哩】 https://b23.tv/y4YqbYf。1.点击文件-制造输出-Gerber Files。注意:在”层“选项中“绘制层”点击“选择使用的”4.点击文件-制造输出-Gerber Files。3.点击确定,关闭弹出界面,不保存。6.点击确定,关闭弹出界面,不保存。
2025-02-20 12:53:51
1542
转载 [转发]59页PPT带你重温无线通信基本原理!!超详细一图通
[转发]59页PPT带你重温无线通信基本原理!!超详细一图通,转发本PPT只用做交流学习使用,不存在任何商业用途,来源自一口Linux微信公众号。
2024-07-30 17:20:27
173
原创 华子 Ascend C算子开发能力认证考试(初级)微认证考试答案(直接Ctrl + F搜关键词就可以了)
解释:在Ascend C编程中,`LocalTensor`通常指的是局部内存中的张量,而`GlobalTensor`指的是全局内存中的张量。如果选项D代表了一个实际的控制参数,用于定义核函数执行的核心数量,且在昇腾AI处理器的文档中有相应的说明,则可能需要选择D。- C. **blockDim**:在类似CUDA的编程环境中,这个参数定义了块的大小,即核函数将在每个块中的线程数。A. **LocalTensor**:可能指的是局部张量,用于存储计算任务中的数据,但不是专门用于任务间数据传递的内存管理模块。
2024-06-16 19:12:09
6701
2
原创 博客摘录「 MFC之取得屏幕大小,设置对话框大小」2024年4月9日
要设置对话框的大小,可以如下实现:CRect temprect(0,0,640,480);
2024-04-09 17:54:00
229
原创 Python numpy切片/pandas iloc()函数实现对123维数据的提取,例如X[i:]X[i]X[i,ii]X[:,i]X[:,m:n]X[a:b,m:n]X[:,i,:]X[::i]
使用numpy切片操作,或者是pandas iloc()函数与切片或者布尔判断、lambda函数等实现对一维二维三维数据的提取
2024-03-25 15:49:36
1171
原创 文献分享十二:(经典)A Mach-Zehnder Modulator Bias Controller Based on OMA and Average Power Monitoring
然后,对比文献分享二(也是本专栏),谐波比监测可用于马赫-曾德尔调制器(MZM)偏置控制,其中MZM偏置通过导频信号调制,通过搜索一阶谐波和二阶谐波之间的最小比值来确定最佳偏置电压。作者还提出了一种基于连续监测OMA的MZM偏置控制器技术,并用芯片面积为0.083 mm的集成电路进行了演示,然而,它遭受了巨大的功耗。通常,使用kHz范围内的导频信号,这样就不会干扰数据调制,但这可能需要巨大的芯片面积来实现滤波器,并且可能不是集成的最佳方法。
2024-01-25 22:19:34
791
原创 文献分享十一:(经典)Modulation-format-free bias control tech for MZM based on differential phasor monitor
通信原理中星座图详解_星座图通信原理-CSDN博客由于目前还没有关于高阶调制格式如QAM信号的自动偏置控制器的报道,而在该技术中,通过计算理想相量与不适当偏置条件下相量之差来获得用于偏置控制的反馈信号。因此,这种技术可以应用于任何调制格式。实际测试中,采用该技术获得的20 gb /s QPSK信号的误码率(BER)与手动优化LiNbO3调制器工作条件获得的误码率几乎相同。(QAM也一样)二、
2024-01-25 15:47:48
185
原创 文献分享十:A Ditherless Bias Control Technique for IQ Mach-Zehnder Modulator Based on Partial Derivative
神经网络对于处理非线性数据有着强大的能力,当模型训练好时候,可以达到比MPU更快的速度,但是缺点就在于前期的成本高,并且这种非线性关系不是一成不变的 ,不同参数和环境变量均会有所区别,所以有待于在自适应的方面上多加研究。,通过再借助ABC算法和PDE算法达到了精确稳定的偏置控制效果。神经网络来学习偏置状态与偏导数之间的非线性关系(区别于文献一)文献来源——J. Wu。
2024-01-24 23:35:34
380
原创 文献分享九:(基础+经典)Auto bias control technique for optical OFDM transmitter with bias dithering
先解释下什么是正交频分复用,这个最早是贝尔实验室提出的,主要是应对信道的多径衰落现象,可以保证传输的信号不失真。OFDM(正交频分复用)技术 - 知乎 (zhihu.com)然后,作者在OFDM I/Q信号上添加了一个小的正弦/余弦抖动。通过对抖动信号的1次和2次谐波的功率监测,可以很好地控制O-OFDM系统中光IQ调制器的偏置。
2024-01-24 23:22:02
466
原创 文献分享八——A_low_bias_stabilization_method_for_deeply-modulated_analog_photonic_links
作者提出了使用反向传播光来避开RF信号对偏置的影响,原理是对于反向传播的光,当射频频率很高时,射频信号的半波电压足够大,可以忽略射频信号功率对偏置点的影响(即使低偏置下的相位角很小也不会影响),因此我们可以锁定MZM的偏置点。
2024-01-22 13:19:44
99
原创 文献分享七:激光通信中马赫曾德调制器无抖动偏置控制技术
一、前言文献来源——L. Ding et al., “Ditherless bias control technique for Mach–Zehnder modulator in laser communication,” Infr. Laser Eng., vol. 48, no. 12, Dec. 2019, Art. no. 1218001.本文提出了一种基于平均光功率斜率值检测的简单有效的控制方案。(与文献分享六是同一个通讯作者),如果看过文献六就不用看本篇文章了,本篇属于精简版。一、前言。
2024-01-22 13:15:22
337
原创 文献分享六:Dither-free low-bias controller for deeply modulated Mach-Zehnder modulators
对于反向传播的光,当射频频率很高时,射频信号的半波电压足够大,可以忽略射频信号功率对偏置点的影响(即使低偏置下的相位角很小也不会影响),因此我们可以锁定MZM的偏置点。(后面设计方案里有做实验验证)
2024-01-22 11:27:02
387
1
原创 文献分享五:A Novel Decoupling Bias Control Technique for Dual Parallel Mach-Zehnder Modulator
先介绍了目前主流的两种偏置点稳定方法:扰动检测法和光功率检测法。扰动检测可以看我这篇文献分享二,已经是老生常谈了,主要是使用二次谐波和基波的比值来判断偏置点的位置,这种方法适应范围广,可以锁定在调制曲线上的任意一点,精度高误差小,但是系统会复杂一些。光功率检测法在此文献分享以前还没有写,我会在后面的分享中给出。先简单介绍一下:就是计算了单个周期 T 内的输出光功率的平均值,然后对偏置电压求偏导,可以根据导数值计算出两个正交点、峰值点和最低点,缺点就是不能锁定在任意位置,反馈环路比较复杂。
2024-01-21 00:54:04
421
原创 文献分享四:(基础)Pyroelectric drift of integrated-optical LiNbO3 modulators
热电效应指的是温度改变引起了铌酸锂材料(有铁电性质)内部电荷的极化,发生了自发极化,从而产生热电场,极大地影响了集成光芯片IOC的性能。
2024-01-20 13:13:59
252
原创 文献分享三:(入门基础)An integrated Mach-Zehnder modulator bias controller based on eye-amplitude monitoring
本篇论文主要是探讨了硅基集成MZM条件下如何借助眼图属性控制偏置点的稳定。本文是最最基础的一个偏置点控制方法,看不懂其他文献的可以先看这篇。
2024-01-19 00:08:48
202
原创 学习笔记(光电系列最后一章)——【光通信原理】 北京交通大学 刘岚岚 第八章 波分复用
首先回答一下什么是密集型得概念:如下图只有两个波段是低损耗得,差不多30THZ,1310,1550两个,所以波分复用还是很有必要的。
2024-01-17 16:18:15
644
原创 文献分享二:A Versatile Bias Control for Any-Point Locking in Lithium Niobate Mach–Zehnder Modulators
主要参考的是有两种偏置方法,有光功率监测法和加入抖动谐波置零信号的方法。光功率监测的方法的反馈信号受输入功率电平波动和光路损耗的影响比较大,如果反馈量里边噪声比较大而原本输出的信号跟噪声接近的时候,或者光器件可靠性差,那么这种方法就没有意义了。所以此方法仅在实验室中出现的比较多,实际应用并没有使用过这种方法。
2024-01-17 11:17:48
282
原创 文献分享解读一:基于机器学习的电光调制器偏置点控制算法研究
文献来源——庞洪鑫 (2022). 基于机器学习的电光调制器偏置点控制算法研究, 上海交通大学.
2023-12-29 18:40:39
872
1
原创 Python实现一元线性回归,含有详细过程及参数传递计算过程
Python实现一元线性回归,含有详细过Python实现一元线性回归,含有详细过程及参数传递计算过程程及参数传递计算过程
2023-11-26 21:18:46
208
原创 Python利用pandas包读取excel表格并绘制散点图
Python利用pandas包读取excel表格并绘制散点图,这样会更快速一点,方便一点
2023-11-26 17:10:31
613
原创 Python求解统计学中的均值和方差、分布函数中的正态分布的分布函数值、卡方分布,也可用于假设检验、正态分布检验(excel表提取数据)
Python求解统计学中的均值和方差、分布函数中的正态分布的分布函数值、卡方分布假设检验、正态分布检验算法等等(excel表提取数据)
2023-11-19 01:39:15
502
原创 FPGA学习笔记——B站野火FPGA教程 第十二讲 阻塞赋值与非阻塞赋值
阻塞赋值是上升沿到来时立刻把等号右边赋给左边,按顺序执行完;非阻塞赋值是上升沿到来时并行地赋值给等号左边,如果有寄存器的话,需要等到下一个上升沿才能赋值。
2023-11-01 17:41:17
254
原创 FPGA学习笔记——B站野火FPGA教程 第九讲 层次化设计hierarchical
【代码】FPGA学习笔记——B站野火FPGA教程 第九讲 层次化设计hierarchical。
2023-10-15 21:37:25
217
原创 GPIO输入、按键控制LED、光敏传感器控制蜂鸣器-江科大stm32学习 第四天
过于简单无需额外学习,只需要注意以下几点:不存在字符型变量,“char”在这里只代表整型数字;还有一些重新命名的关键字:还有需要注意typedef。
2023-10-15 11:46:08
320
原创 FPGA学习笔记——B站野火FPGA教程 第六、七、八讲 组合逻辑电路verilog与仿真 数据选择器多路选择器、译码器、全加器半加器
reg in2;reg ci;wire out;wire co;ci
2023-09-12 19:38:24
1099
原创 FPGA学习笔记——B站野火FPGA教程 第五讲 点亮LED
规划:考虑资源量,功耗,芯片选型,子模块划分,信号等参数的分配画波形图:根据数据手册和功能预期,用画图软件画出波形图,防止信号太多混乱。代码编写到仿真结果:对比波形图,确认功能是否正确(前仿)绑定管脚到验证:看实际功能是否正确。
2023-09-09 17:27:08
858
3
原创 GPIO学习、项目:LED闪烁、LED流水灯、蜂鸣器-江科大stm32学习 第三天
所有GPIO都挂在PB2总线上:上拉下拉电阻的作用:施密特触发器:利用滞回特性对输入的数字信号进行整形模拟输入:连接到ADC上的复用功能输入:可以连接到其他需要读取端口的外设上的输出数据寄存器:只能整体读写数据(32位)位设置/清除寄存器:可以控制输出寄存器进行某一位的输出,解决了只能整体输出的短板(当然也可以先读出输出寄存器,再用按位与、按位或&= |=的方式对某个位进行修改,然后写入寄存器进行输出)推挽输出模式:N/PMOS均为有效输出,此时的输出高低电平都具有较强的驱动能力。开漏模式:只有低电平输出有
2023-09-07 20:48:58
328
原创 删除编译时产生的较大的链接等中间文件的脚本代码.bat-来源江科大stm32
【代码】删除编译时产生的较大的链接等中间文件的脚本代码.bat-来源江科大stm32。
2023-09-07 19:48:46
100
原创 点亮一个LED以及新建工程中的注意事项-江科大stm32学习 第二天
GPIO_InitTypeDef是一个定义好的结构体变量,因此,我们应该把GPIO_InitStruct设置为结构体指针类型,不能像视频那样还把它当作一个结构体变量。
2023-09-07 16:46:13
135
原创 FPGA学习笔记——B站野火FPGA教程 第四讲
关键字: module endmodule wire reg input output parameter localparam always@(posedge or negedge) assign(只用于wire的赋值,always只能用于reg赋值)$write 需要换行符,$strobe只在最后执行输出。Verilog基础语法。
2023-09-06 22:10:42
163
1
史上最详细光电二级管放大电路设计资料(中文)
2024-10-12
FPGA设计:带8位数据处理的缓存发送器
2024-07-24
天线去耦方法的研究大合集(9篇文献)
2023-02-12
多种智能电容式差压传感器设计参考资料
2022-05-21
calibre跑DRC、更换DRC文件之前的出现的设置问题
2022-05-21
基于ADS的射频课程设计报告和仿真文件(包括集总元件、理想传输线和微带线阻抗匹配)
2022-05-19
使用结构体指针对结构体中的变量赋值再运行代码,结果单片机无反应无应答的问题
2023-10-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人