自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (15)
  • 收藏
  • 关注

原创 嵌入式系统中的中断向量表的存储位置

中断向量表位于 RAM 中,允许在运行时修改,适合动态中断处理场景。:中断向量表位于 FLASH 中,通常是固定的,适合大多数静态系统或不需要动态更改中断处理的场景。具体使用哪个常量取决于系统的需求。如果需要更灵活的中断处理,可以选择,而对于大多数嵌入式应用,默认使用即可。如何为中断向量表分配一个固定的 RAM 区域在嵌入式系统中,将中断向量表放置在 RAM 中通常需要在链接脚本(Linker Script)中为它分配一个固定的 RAM 区域。

2024-10-25 18:50:22 1061

原创 无源数据TRP,TIS指标好还是有源数据指标好

更好,原因在于无源数据只测量天线本身的性能,而没有考虑设备中的有源元件(如功率放大器、低噪声放大器、滤波器、传输线损耗等)对整体性能的影响。更贴近实际设备的真实表现,两者在评估设备的不同阶段都非常重要。用于优化天线设计,而。

2024-10-22 20:25:45 849

原创 天线有源数据和无源数据有什么区别

和的区别在于是否包含了天线和无线设备中的有源元件(如功率放大器、低噪声放大器等)在测试中的影响。简单来说,有源数据考虑了天线系统的所有电路部分,而无源数据只反映天线本身的性能。

2024-10-22 20:24:47 982

原创 OTA测试在天线暗室中的应用

天线暗室是一种特殊设计的封闭空间,墙壁、地面和天花板都覆盖了吸波材料,能够吸收电磁波,避免反射,从而模拟自由空间的传播环境。OTA测试能够评估无线设备在真实环境中的整体射频性能,因为实际使用场景中设备的无线信号通过天线发射和接收。这种测试能够模拟设备在实际环境中的工作情况,确保其具有良好的无线通信能力,是手机、物联网设备等无线设备认证和优化的重要步骤。这种测试在一个特殊的无反射环境中进行,目的是避免外界信号干扰,并提供理想的测试条件。中通过无线电波对设备进行测试的方法,用于评估无线设备的。

2024-10-22 15:59:11 1061

原创 FDD-B1的BandWidth是多少?怎么定义的?

在无线通信中指的是设备或网络用于传输信号的频率范围。例如,在FDD模式下,每个信道(上行和下行)的带宽独立定义,且根据运营商的频谱分配情况选择具体的带宽配置。

2024-10-22 14:34:13 777

原创 GSM850分几个Channel,为什么这样分?

GSM850的信道划分为128至251的ARFCN编号,总共有124个信道。每个信道间隔200 kHz,并且上下行之间有45 MHz的频率差。这种划分方式是为了最大化频谱利用效率、保持设备设计的简单性、避免与其他技术的干扰,并确保全球范围内GSM标准的一致性。GSM900GSM900的信道划分包括标准GSM900和扩展GSM900频段,共分为**1到124(标准)

2024-10-22 14:00:33 1010

原创 TRP测试的时候分不同的Channel的原因是什么

在TRP测试中,之所以要可能会影响无线设备的发射功率和天线性能。

2024-10-22 13:59:22 462

原创 Total Radiated Power,总辐射功率 TRP如何测试

通过在各个方向上测量设备的发射功率并综合计算,可以确定设备在现实使用场景中的信号覆盖范围和整体性能。为了确保测量的准确性,测试系统需要进行校准,通常使用已知功率输出的标准源来校准天线和射频信号分析仪。此外,为了模拟实际使用情况,被测设备可能会以不同的姿态(例如不同手握方式)进行测试,以模拟实际使用环境中的发射情况。的测试是一项关键的天线性能评估过程,主要用于测量无线设备在各个方向上的发射功率总和。测试通常在设备的工作频率范围内进行,比如对于手机设备,可能涉及多个频段(如LTE、5G频段)。

2024-10-22 13:57:44 1164

原创 天线测试中的TRP和TIS分别是什么

在天线测试中,)和)是两个重要的性能指标,它们分别用于评估无线设备的发射和接收性能。

2024-10-22 13:55:03 5046

原创 锂锰电池和锂电池区别

锂锰电池:一次性、不可充电,适合低功耗、长寿命设备。锂离子电池:可充电、适合高能量需求的设备,如电子产品和电动车等。根据应用需求和使用场景的不同,选择锂锰电池或锂离子电池会有不同的优劣权衡。

2024-10-15 20:51:05 1262

原创 USB中使用差分信号的原因

差分信号通过抵消外部干扰、提高信号完整性、减少串扰和支持高速传输,成为现代数据通信中一种非常有效的传输方式。它们的设计理念使其在复杂的电子环境中保持信号的可靠性和准确性。为什么 信号的差异可以用于表示数据?信号的差异用于表示数据的原理主要基于差分信号传输的概念。信号的差异可以有效用于表示数据,因为这种方式依赖于两条线之间的电压差,提供了较好的抗干扰性和信号稳定性,同时支持高效的数据传输。差分信号的设计理念使得在复杂环境中保持数据的准确性和可靠性成为可能。

2024-10-08 17:21:31 1323

原创 Type A和Type B ,Type C的区别

USB Type A:传统的矩形接口,多用于主机端,如电脑、电视等。单向插入,数据传输和供电能力取决于USB标准(如2.0或3.0)。USB Type B:方形接口,主要用于外设端(如打印机、扫描仪)。供电和传输能力同样取决于USB标准。USB Type C:最新的接口设计,小巧、可双向插入,支持高达100瓦的供电和高达40 Gbps的传输速度,广泛用于现代设备中,如智能手机、平板电脑、笔记本电脑等。

2024-10-08 16:47:29 4934

原创 USB 3.0和 USB 2.0的区别

USB 3.0相较于USB 2.0提供了更快的数据传输速度、更高的供电能力、全双工传输支持,并且具有向下兼容性。在用户体验上,USB 3.0在处理大文件、视频传输、快速充电等方面有显著优势。如果你使用需要高性能数据传输或快速充电的设备,USB 3.0是一个更好的选择。

2024-10-08 16:45:42 2967

原创 Keil编译器上Link-Time Optimization的作用

做个记录,明天开始写I2C 总线组成; I2C设备的原理图; I2C 是怎么工作的; I2C 读和I2C 写; 代码分析; 遇到哪些问题;

2024-09-27 19:23:38 302

原创 Keil编译器上Link-Time Optimization的作用是什么

总的来说,Link-Time Optimization 在 Keil 编译器中主要的作用是通过在链接阶段进行全局的优化,提升代码执行效率、减少代码冗余和可执行文件的体积,以及优化内存和计算资源的使用。:通过将各个编译单元的优化提升到链接阶段,LTO 可以让编译器在全局范围内执行更多复杂的优化技术,例如跨模块的函数内联、指令调度、数据流分析等。:通过全局分析,LTO 可以生成更加优化的代码路径,减少不必要的函数调用、分支和其他运行时开销,从而提高程序的执行速度。

2024-09-27 19:07:02 510

原创 字节不对齐导致的HardFault

假设你有一个32位(4字节)的整数,而它的内存地址需要是4的倍数才能保证对齐访问(即地址为0x0000、0x0004、0x0008等)。在Cortex-M0这种不支持非对齐访问的处理器上,上面的代码将会导致HardFault,因为处理器期望32位数据存储在4字节对齐的地址(即地址是4的倍数)。非对齐访问造成的HardFault并不只限于Cortex-M0单片机,其他基于ARM架构的处理器也可能出现类似的问题。在这个例子中,地址 0x1000 是4的倍数,因此这是一个对齐的访问,处理器可以高效地读取数据。

2024-09-27 10:37:34 1271

原创 PMOS的原理

PMOS

2024-09-26 20:20:15 3583

原创 NMOS的原理

当G极电压足够高且D极电压较高时(V_GS > V_th 且 V_DS较大),通道饱和,电流达到最大值,进一步增大V_DS不会显著增加电流。在饱和区,NMOS用于放大器等需要稳定电流输出的场合。:当G极电压高于阈值电压且D极电压较低时(V_GS > V_th 且 V_DS较小),通道完全打开,电流线性地随着V_DS增大而增大。此时NMOS像一个可变电阻器。:当G极电压低于阈值电压(V_GS < V_th),NMOS处于截止状态,通道未形成,S极和D极之间没有电流流动。

2024-09-26 20:18:54 2712

原创 不吐不舒服斯基,记一下VC6的编译出错问题 unexpected end of file found

今天下午在改一个程序,加了几句代码之后编译一下,报了错误:报了错:fatal error C1004: unexpected end of file found根据经验看是少了大括号之类的,仔细看了下好像也没有少,看了至少五六遍,没有少啊,加入的代码移了位置导致的?各种换位置验证。搞了大概有一个小时了(其实没有,只是你知道在这种情况下好像感觉搞了很久)最后一行一行去删掉编译,我真的 很庆幸程序不是很大,编译时间不需要太久,要不真的想骂死Microsoft VC6.0的工程师的心都有了。

2021-02-10 16:18:31 1575

原创 Linux 基于C的线程池实现

首先这个线程池不是我写的,是在git上找到的星标最多的

2021-02-09 15:40:43 326

原创 sigslot 库的用法

这里还是网友的一个经典例子,light和switch例子#include <iostream>#include "sigslot.h"class CSwitch{public: sigslot::signal0<> m_clicked;};class CLight:public sigslot::has_slots<>{public: CLight(bool s) { m_b_state = s; DisplayState(); }.

2021-01-25 03:55:33 571

原创 GD32 JTDI脚的复用问题

项目上有用到JTDI这个脚,复用做GPIO当时没有注意,直接用做了GPIO,一直无法控制这个Pin最后看了SPEC,发现这个默认是JTDI脚Default JTDI如果要用做GPIO的话(也就是PA15)的话要用REMAP的方式,这个顺序不要变,之所以这么说因为有网友在STM32上验证说:必须先打开时钟再Disable才可以 rcu_periph_clock_enable(RCU_AF); rcu_periph_clock_enable(RCU_GPIOA); gpi.

2021-01-21 11:58:14 2885 7

原创 GD32 ADC检测电压

GD32的参考电压在规格书上没有查到,但是由于GD32 和STM32的“某种关系“。。。STM32 的内部参考电压是1.2V,所以GD32的可以想象也是1.2V。(最终通过计算发现确实应该是1.2V)

2021-01-21 11:46:21 11684

原创 OninitDialog和OnCreate

如果你想在窗口创建的时候,指定哪些控件显示,哪些控件不显示,那么选择重写OninitDialog,它是CDialog的成员函数CDialog::OnInitDialogMSDN示例代码:BOOL CSimpleDlg::OnInitDialog(){ CDialog::OnInitDialog(); // TODO: Add extra initialization here m_cMyEdit.SetWindowText(_T("My Name")); // Initia.

2021-01-12 22:34:56 567

原创 MFC用户线程的创建以及退出

公司的生产测试工具用了N多年了。N多年的是多少年?不知道是不是现在的一些小同学还不知道VC6.0(还不知道可能不妥,仅仅调侃,无意冒犯,应该说是没用过),生产测试工具当时还是用VC6.0开发的,感觉这和现在去打仗用的还是清朝的“神威无敌大将军”一样。所以,我这个起步VC6.0,但是又半路出家的程序猿再恶补一下当年丢下的东西。工具的UI和功能其实都很简单,但是要优化的地方也是很多。今天只说一下涉及到UI线程也就是界面线程部分,因为真正的测试工具的功能比多,这里仅仅用demo的方式记录一下自己恶补的一些

2021-01-11 16:47:42 950 6

原创 如何确认目前的你所用的MYSQL数据库的引擎

如何确认目前的你所用的MYSQL数据库的引擎看你的mysql现在已提供什么存储引擎:mysql> show engines;看你的mysql当前默认的存储引擎:mysql> show variables like '%storage_engine%';你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):mysql> show create table 表名;mysql> show variables like '%sto...

2020-12-11 18:02:55 189

原创 beyond compare 编码错误

工具->文件格式->转换-> 编码 选择GB18030简体中文基于你的错误编码是中文编码导致的。

2020-07-14 13:57:12 1628 1

原创 将中断向量表定位到RAM中,从RAM中引导执行中断服务

最近在解决一个问题,看到一篇代码,将中断向量表定位到RAM中,代码所在的文章在这里:https://www.silabs.com/community/mcu/32-bit/knowledge-base.entry.html/2017/05/09/emu_e110_-_potential-i2Pn大家都知道,MCU的中断向量表通常是在flash的0x00000000地址,这一点从你编译...

2020-04-27 11:53:05 6061

原创 μcos-II的任务调度

看到了一位网友的博客,感觉说的比较好,就Copy过来了主要是之前知道任务调度是调用OS_Sched,但是没有看到这个函数的具体实现,或者说看过这个实现没有意识到是利用软中断来对当前任务做现场保存的。这里对接上了,昨天晚上还嘀咕着是不是这么做的,看来果然是啊。//任务调度//uCOS-II总是运行进入就绪态任务中优先级最高的那一个。确定哪个任务优先级最高,下面该哪个任务运行了...

2020-03-27 09:51:15 643

原创 MCU 跳入到SystemInit之后就不往下走了

刚在测试一个USB的小例子的时候,下载好了之后,调试发现跑到startup_gd32e10x.s的SystemInit之后就不动了。;/* reset Handler */Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT...

2020-03-14 17:46:41 1853

原创 system_gd32e10x.c分析

/*! \brief setup the microcontroller system, initialize the system \param[in] none \param[out] none \retval none*/void SystemInit (void){ /* FPU settings */ /* 如果要使用户...

2020-03-14 14:00:49 3382

原创 SPI + DMA

说一说DMA是什么东西,DMA本身的意思是Direct Memory Access,直接存取访问,可以看到这只是一种存取方式,或者说读写方式,或是直白点来说,就是直接读取,说的太直白了,感觉这个DMA这个词在脑子里感觉有点SB了,就这么一个破烂玩意儿起这个这个类似遇到DNA一样的玩意儿。直接存取或者直接读取写入什么呢?当然是数据了,从哪里读,或者往哪里写呢?这个问题好,后面会说到读取的位置...

2020-03-08 21:58:45 12480 4

原创 SPI Flash读取操作

今天看到有人在问SPI flash读取数据的方法,为什么这样读取?先给出一个函数,SPI的读取函数:/*! \brief read a block of data from the flash \param[in] pbuffer: pointer to the buffer that receives the data read from the flash...

2020-03-06 21:04:36 6349 12

原创 GD32 starup_gd32e10x.s分析

;/*!; \file startup_gd32e10x.s; \brief start up file;; \version 2017-12-26, V1.0.0, firmware for GD32E10x;*/;;/*; Copyright (c) 2017, GigaDevice Semiconductor Inc.;; ...

2020-03-05 14:43:15 1203

原创 keil error:#8:missing closing quote 处理

在KEIL中Options for Target 'Flash' -> C/C++ -> Misc Controls添加“--locale=english”。原因:MDK5采用UTF-8,提示很多个这样的error:#8:missing closing quote 的错误信息。提供以下几种方式解决:第一种: 把报错提示的文件(包括.c和对应.h)用Notep...

2020-02-14 10:37:26 1075

原创 python 获取 指定文件下的所有文件名的绝对路径

import osresult = []def get_all(path): dir_list = os.listdir(path) for i in dir_list: sub_dir = os.path.join(path,i) if os.path.isdir(sub_dir): get_all(sub_dir)...

2019-12-31 10:49:34 2414

原创 Python使用FPDF导出字体 widths array

新建FontDump工程,import FPDF库。File ->Setting->Projcet:FontDump->Projcet Interpreter->Double click pip 新建FontDump.py文件,导入库FPDF 怎么知道FPDF的所有函数或者说方法呢?看下刚刚下周的库到我们的工程目录下D:\Python\FontDump\env\Lib\...

2019-12-07 17:43:20 825

原创 libharu-RELEASE_2_3_0编译

下载最新的libharu :http://libharu.org/ 网址贴下,可以去下载最新的版本,我这里是2_3_0的版本; 编译libharu要用到zlib和libpng,所以我也从对应的官网上下载:zlib(http://www.zlib.net/),libpng(http://www.libpng.org/pub/png/libpng.html) 先编译zlib,在zlib-1.2.1...

2019-12-05 09:27:05 861

原创 zlib解压 被压缩的PDF(关键字FlateDecode)

PDF被压缩了,但从网上看这个压缩算法就是zlib的压缩算法,下面的乱码就是压缩导致的乱码,现在需要把这些乱码复原%PDF-1.7%溷弦4 0 obj<</Length 3 0 R/Filter/FlateDecode>>streamx渆QMK聾}&跉MIb郦Q鰳娵R刍??焱zR<?|3狣B6?颿f?滕,鞃?珈毵辊纡拶迨鷚#Ef? B?]蔑...

2019-12-04 17:29:49 5290

原创 Stack Overflow无法提交问题

StackOverflow无法提交问题,是因为缺少某些插件按照这位网友的方案,可行为什么会出现“Stack Overflow requires external JavaScript from another domain, which is blocked.."?...

2019-11-30 12:40:35 561

sigslot.h 对象之间发送和接收消息的机制

sigslot的头文件,sigslot.h 包含了sigslot的实现

2021-01-25

MFC用户线程的创建以及退出

主要展示MFC用户线程的创建和安全退出,一个小的demo历程

2021-01-11

HF_FullRAM_Vect_LG.zip

EFM32 LG中从RAM重引导中断服务。是为了解决从EM2唤醒之后,在读取flash上代码时候有问题,导致唤醒中断无法执行,导致系统重启

2020-04-27

GD32E10x_User_Manual_CN_V1.0.pdf

GD32 MCU User manual 中文版。这里对照的是优快云博客中的文章。主要是外设的一些介绍,适合各个开发阶层的工程师,当然这个是Cortex-M的内核,基于此内核的MCU我觉得都差不多,可以参考看看

2020-03-14

libharu+lpng+zlib

压缩包是libharu,libpng zlib的集合,通过这些可以编译生成对应的库用在PDF的生成上。

2018-10-26

一个关于注册表和串口COM操作的小程序

VS2010开发的一个自动找串口和串口操作的小程序,CCOMOperator参考cnCom.h写的。另外还有一个CRegisterOperator的类。以后自己做类似程序参考使用

2018-10-21

Si4438C datasheet

Si4438是Silicon Labs专门针对中国ISM频段推出的无线射频芯片,其频率范围是425MHz ~525MHz。由于其高射频性能、低功耗以及高性价比等特点,在无线抄表、智能报警以及远程监控等市场被广泛使用

2018-10-08

liabcoap 源码

coap源码是物联网用的比较多的协议,相对于mqtt,有其自身的优势,这份源码我感觉还是比较不错的!

2018-10-08

IAR7.x所需要的,IAR 8.2可以尝试破解文件

IAR 7.8的破解文件,IAR8.2上可以尝试破解,我的一台电脑可以,一台不行。不知道什么原因。大家可以尝试一下。 放错了,怎么撤销????不好意思

2017-11-28

采用Hook钩子注入DLL.

这里采用了HOOk钩子注入DLL,不过出现了错误,大佬帮忙查看下哪里出错了。

2009-08-26

DIB到DDB位图的转换和百叶窗效果

用CreateDIBitamp函数和LoadImage函数实现DIB到DDB位图的转换和百叶窗效果。

2009-08-09

SQL Server 2000简明培训教程.rar

SQL Server 2000简明培训教程.rar SQL Server 2000简明培训教程.rar

2008-11-25

信息技术竞赛辅导,是EXE文件的

信息技术竞赛辅导.exe 这是EXE文件版的。里面语言是Pascal的

2008-11-16

Ubuntu入门教程.chm

Ubuntu入门教程

2008-07-30

空空如也

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

TA关注的人

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