- 博客(56)
- 收藏
- 关注
原创 Arduino bootloader 固件烧录和 application 固件下载
注意 USBasp 的驱动程序也讲究版本,我图便宜是在“优信电子”淘宝店买的下载板,但店家提供的驱动程序 libusb0.dll 的版本是V0.1.10.1,着实太老了,结果智峰固件下载软件PROGISP V1.72 运行时会报错说没有找到下载板或下载板到目标板连线错误,我只得将驱动程序换成其他店家提供的 V1.2.4.0 的版本:USBasp-win-driver-x8 6-x64-ia64-v1.2.4,这之后才能成功下载 bootloader 的 hex 文件到目标 MCU。否则你的芯片可能跪了。
2026-06-02 18:08:55
177
原创 记一次峰值检波电路的信仰崩塌
4,泄放电阻采用了1MΩ对地,因为理想条件下,二极管是不会反向漏电流的,运放输入端也不漏电流,那么保持在电容上的电荷就没有地方去,如果输入信号峰值变小了,又缺乏一个泄放通道,那这个电容上的电压会保持原值,而不能跟随输入的变小而变小。从理论上讲,这个电路天衣无缝。直到有一天偶然逛立创商城,在搜索框输入关键词“峰值检波器”,然后向下扒拉,才妙手偶得LTC5507,乍一看频率范围就很合适,淘宝单价低至17远且有现货,关键是这个LTC5507的输出电压,严格正比于输入射频峰值的对数,也等价正比于功率的dBm值。
2026-05-27 19:06:23
224
原创 穷逼的运放选型
摘要:本文针对低成本运放选型问题,对比分析了6款常见运放型号的关键参数和价格。提出"穷逼首选"方案:低压选LMV358(¥0.53),高压选TP2582-SR(¥1.67)。文章详细阐述了运放选型的核心三要素(电源电压、信号频率与增益、输入输出范围)和场景特化原则,并总结了常见选型误区。特别指出SGM8212虽性能全面但价格过高(¥8.07),建议根据实际需求选择性价比更高的型号。文末附有各型号在立创商城的参数摘要。(149字)
2026-05-17 00:49:11
361
原创 关于Buck型DC-DC的电感选项
本文探讨了12V转5V的DC-DC降压方案选型过程。作者放弃了原用的JW5397芯片,转而寻求单价不超过1元的同步Buck芯片。通过计算纹波电流和峰值电流,最终选定SY8121C1ABC芯片搭配2.2uH电感(FTC252012S2R2MBCA)的组合,该方案采用1.2MHz开关频率,在保证性能的同时实现了小体积和低成本。文中详细介绍了电感选型计算过程,并提供了输出电容选型和PCB布局建议。作者通过对比不同AI工具的建议,最终确定了这一经过理论验证的优化方案。
2026-05-15 10:53:23
343
原创 一个月入门Allegro 17.4
摘要:本文详细介绍了Cadence Allegro PCB设计软件的入门流程,从安装到完成PCB设计的全过程。作者通过亲身实践,总结出10天入门的学习经验,指出AI辅助教学的局限性,强调跟随工程师实操笔记学习的重要性。文章逐步讲解了新建板框、倒角处理、库设置、网表导入、元件布局等关键步骤,并分享了操作技巧和常见问题解决方法。针对Allegro反人类的设计特点,作者提供了实用的视觉设置建议,帮助新手快速掌握这一专业PCB设计工具。
2026-05-08 19:42:51
234
原创 高云FPGA固件下载速成
双击Operation栏,将弹出Device Operation窗口,请更改Access mode到“Embedded Flash Mode”,更改“Operation”到“embFLASH Erase, Program”。首先会弹出cable Setting窗口,只要Cable栏和Port栏有显示,就说明下载头驱动已成功安装,而且下载头已经被上位机成功识别到。点击左上角放大镜,搜索目标FPGA,能在“Deice Chooser”窗口中看到有型号,就说明目标FPGA已经被下载头识别到,这里选第一个就好。
2026-04-29 21:59:16
129
原创 EFM8的I2C从机编程
VIP用户可以用PC浏览器下载pdf,非VIP用户请电邮14518918@qq.com索取图文并茂的pdf或源码。一、I2C从机编程安装完Simplicity Studio 5,可以在这个目录下,找到EFM8LB1原厂评估板适配的所有外设的原厂例程:D:\SiliconLabs\SimplicityStudio\v5\developer\sdks\8051\v4.3.1\examples\EFM8LB1_SLSTK2030A。但官方例程的I2C从机代码,D:\SiliconLabs\SimplicityS
2026-04-21 17:39:25
346
原创 推挽输出和图腾柱
其实共什么极,是站在交流信号角度来看问题的,对交流信号而言,电源和地之间有很多滤波电容,而交流信号是可以穿过电容的,所以在交流信号眼中,电源和地,是短路的,这就是为什么画多层板PCB时,高速信号既会把GND做参考层,也会把电源层做参考层,这就要求高速信号途径的电源层不能有分割,否则高速线阻抗就不连续了。面试者答没答上来,现在的我已然忘了。当Vin=0V时,对下图左侧的上管T3而言,发射结零偏了,基本上可视为截至,那么就变成下图右侧的电路,看下管T7,集电结零偏,发射结没电压输入仍然零偏,故T7也截止。
2026-04-08 00:32:45
352
原创 用Simplicity Studio开发EFM8单片机(续)
注意,由于IOMode=Digital OpenDrain I/O且Latch=High且Skip=Not Skipped,对IO口而言,是默认配置,所以当你在编辑.hwconf文件时,点击右键菜单里的 Generate Source,或敲键盘Ctrl+S,将图形界面的内容保存到InitDevice.c中之后,在InitDevice.c中将只能看到配置P0.7的代码,而完全看不到配置P1.3和P1.4的代码。还有,因为我的板子的P1.4,是金手指输入的HardTxDis信号;
2026-04-06 16:19:18
447
4
原创 关于TTL单端到RS485差分
这之后当TXD的某个bit=1时,由于C14和R15的RC电路存在一定的充电延时,并不能很快使NPN的B极高于Vbe的0.7V,故NPN保持截止状态,则NPN的C极也就是DE/#RE保持高电平,使U6仍然处于发射机状态,即数据方向是TXD单端到差分A/B。以斯瑞普的TPT75176H为例,R接RXD,D接TXD,DE/#RE通常并联在一起被称为DIR,当DIR=1则是单端D流向差分A/B,当DIR=0则是差分A/B流向单端R。然后,当RC较大的时候,比如R=20k, C=1μF时,τ=RC=0.02 s。
2026-04-04 17:13:05
179
原创 浅析光模块固件之PC-MCU-Driver构架下的二级I2C从机的透传编程(再续)
比如上位机写了AATable80的LOSth,就不能很快回读A2[6E].bit1的LOS,必须等待一段时间,等MCU在while(1)主循环中完成回读Driver的AALower+AATable80/81/FF并刷新A2Lower+A2Table80/81/FF,才能发起回读A2[6E]的操作,否则A2[6E]可能都没有被MCU刷新。透传机制的好处是显而易见的,比如当硬件工程师改写MCU的A2Table80[80…FF]时,实际回读的是MCU轮询到的GN1196的AATable80[80…
2026-03-30 23:37:07
449
原创 EFM8的中断编程
答案是不需要,因为TF0=1触发了TF0中断事件,硬件就会自动清零TF0中断标志位,如果在TF0_ISR中,强行手工置位TF0(目的是清掉TF0中断标志位),则TF0中断将在退出TF0_ISR时再次被触发,从而引发停不下来的“中断风暴”,最终导致主程序卡死。为啥是Timer0呢?实际上,昨晚睡前跟豆包的夜谈会,起势是聊藏传佛教的密宗的双修,但聊着聊着就歪了楼,聊到了如何将道法自然融会贯通到临终关怀,一向情绪价值拉满的豆包的总结陈词是——人这一生,说到底,求的不过是来时安稳,去时安宁,顺其自然,便是最好。
2026-03-30 14:08:39
366
原创 用CVI实现bcrypt加密算法
其次,AI的生成机制,是“接龙”,而不是“查表”,是基于前面的所有字符预测下一个字符是什么,是一种概率性创作。在用户注册时,用户会被要求输入账号和密码,程序将先调用bcrypt_gensalt(salt, cost)生成盐值字符串salt[],其中的迭代次数cost可以是4/8/9/10/12等整数最大值31,然后将用户输入的密码password[]和盐值salt[]送入bcrypt(password, salt, hash)函数,生成哈希值字符串hash[],并作为密码密文和账号一并存入数据库。
2026-03-24 01:23:42
175
原创 用CVI写一个贪吃蛇小游戏
心想也对,做贪吃蛇需要非阻塞读取键盘(不卡死等按键,蛇能自己移动),像标准C库的getchar()就是阻塞式回去键盘,会让进程卡住,不能用的。注意,CVI2010似乎不能#include <conio.h>,所以豆包给出了调用windows API的替代方案,来实现非阻塞式检测方向键/ESC是否按下的kbhit()函数,和判断按键具体是哪个方向键/ESC的getch()函数。很显然,这里用到了GetAsyncKeyState()函数,这是WindowsAPI的非阻塞检测按键函数,按下返回负数,没按返回0。
2026-03-19 12:51:29
369
原创 CVI+MySQL编程入门之用户管理
下面是已经创建好了的并保存有三条记录的user表单,可见这里的id并不连续,一般说明该表单的id=3~5的历史记录有被删减过,而且,用户Ellen没有录入过指纹,只能靠账号密码登录。由于数据库报错的密码并不是原始密码,而是MD5编码之后的字符串,所以如果用户自己忘了密码,数据库是没法恢复出原始密码的,只能删除用户再重新注册。双击MySQLConnect的这个连接,会变绿,并拉出该连接包含的一众数据库,其中,myi2c这个数据库,是我曾经建好的一个私有数据库,其他都是安装完mySQL自动就有的。
2026-03-12 23:27:27
332
原创 用Keil C51通过U-EC6仿真器下载EFM8的Bootloader程序并调试APP代码
我上周听说友商李工用U-EC6仿真头在Keil C51中居然可以单步debug代码,然后我在SS5里面死磕Jlink连接EOC8001无果,果然换赛道,继续在SS5里面尝试U-EC6连接EOC8001,还是失败。注意,在安装这个驱动的过程中,务必要手工指定安装目录,必须是之前独立安装的Keil C51的那个目录,然后一路next,就不报错,否则会报错。但还是高兴太早了,有朋友昨天说,用Keil通过U-EC6仿真器,在debug完代码之后,I2C Bootloader就消失了。执行完188行,仿真就挂了。
2026-03-10 19:26:57
248
原创 AS608指纹模块的串口编程入门
AS608模块尾部有个8PIN插座管脚,其定义可参考《ATK-AS608指纹识别模块用户手册 .pdf》(原厂的pdf文件的文件名,就很是让强迫症不爽,“.pdf” 居然前面多了一个空格),注意连接AS608模块的Tx到CH341串口模块的Rx,连接AS608模块的Rx到CH341串口模块的Tx,AS608模块的Vi到CH341串口模块的+3.3V(千问不要连+5V),AS608模块的GND到CH341串口模块的GND。最开始千问给的代码,是分段回读的,结果后面的数据就消失了。
2026-03-09 00:30:04
395
原创 如何从一个while循环中强行退出的问题
在CVI2010中,界面放一个ToggleButtom控件,按下该按键后,在回调函数中,会赋值标志位isPressed=1,再次按键则清理标志位。停止键的回调函数,就只清零标志位isPressed=0,从而以“伪异步”方式,迫使启动键回调函数中的while(isPressed)退出循环。最后,ToggleButtom控件的回调函数,只负责赋值标志位isPressed=1或0,=1就使能Timer,=0就禁止Timer。首先,标志位isPressed是全局变量。方案二,不大丝滑但最简单容易理解和实现。
2026-03-08 11:54:15
48
原创 用SimpliCity Studio开发EFM8单片机,不写一句代码仅用全图形化配置CLU实现一个硬件或门
还好,瞎猫碰到死耗子,我就觉得SS5的Keil C51的CID比较眼熟,经核对,这厮竟然和独立安装的Keil C51的CID一模一样,遂拷贝独立安装的Keil C51的LID,粘贴到SS5的Keil C51的LID框,遂OK!注意,在安装这个驱动的过程中,务必要手工指定安装目录,必须是你之前独立安装的Keil C51的那个目录,然后一路next,就不报错,否则会报错。做工程师不要怕露怯,不会就是不会,勇敢承认就是了,然后多方积极求助,总有一两个不那么卷的朋友愿意施予援手,救你于泥沼的。
2026-03-04 00:01:28
356
原创 神奇的PN结
PN结处的内电场,会阻碍两侧的多子进一步扩散,还会促进两侧的少子漂移(P 区的少子即自由电子一旦靠近耗尽层边缘,会被内建电场迅速拉向 N 区。正因为在这个区域的多子(电子和空穴)都复合了变成晶格的一部分,要么被电场赶回了老家跑光了,而只剩下不可移动的失去了(或得到了)电子/空穴的掺杂原子和硅原子,所以也叫耗尽层(耗尽了可移动的多子)。注意,在光导模式下,是给PD管加了一个反偏电压,并不是增强PD管的电流驱动能力,而是为了扩大PN结耗尽层宽度,以降低PN结的结电容,以获得了更快的响应速度和更高的信号带宽。
2026-02-26 14:56:01
263
原创 3天基于VS2026的C#编程入门及动态调用CH341DLLA64读写I2C从机
7),我折腾了几个小时,最后是把行头隐藏起来,用数据区的第一列(添加属性不可编辑)做行头,才好了的。C#中创建一个表格,是先拖一个dataGridView1控件到面板,控件名就用默认的dataGridView1,然后右键“编辑列”,第一列不要列头HeaderText为空,因为这一列我们将用来替代行头,ReadOnly=True,列宽Width=20;1,在Debug模式下,观察一个数组变量的值,需要右键点击数组名,点击“查看”,选择IEnumerable Visualizer,默认是10进制的。
2026-02-11 00:48:03
661
原创 Qt6一周入门及静态调用CH341DLLA64读写I2C从机
欲看图文版pdf文档,及Qt工程源码,请用PC浏览器下载附件。前言我都半百了才开始学习Qt下的C++编程,可能是为我98年大四时选修C++失败(注,我大学科班的计算机语言课,是Pascal,连C都不是),给一个交待。我回忆了一下我早年的这个失败,真可能跟学术霸凌相关,那个时候还没有AI平权一说。现在我心脑血管都斑块密布了,才重拾面向对象的编程。毕竟起步太晚,没有AI我肯定学不会的。
2026-02-07 23:46:50
845
原创 千兆1550nm光模块的长纤色散代价
我记得我们以前10G 80km 1550nm光模块的datasheet里,TDP都是要求小于3.5dB的,实测值也通常大于2dB。所以看上去,只要客户光纤插损能控制在0.2dB/km,传200km的总插损40dB,然后色散代价TDP能够<1dB的话,且不考虑法兰盘或接头带来的每个接头0.3dB的插损,只要光模块的功率预算>41dB,就能实际传通200km的G.652D光纤!D :光纤色散系数(ps/(nm·km)),G.652D 在 1550 nm 取 17 ps/(nm·km)L :传输距离(km)
2026-02-02 17:33:50
301
原创 手把手教你基于CVI2010的多线程编程
好在我人笨,一时理解不了那么高大上的,就只会用常规的手法,比如在控件编辑器输入子面板TIMER控件的回调函数名,然后在代码里面设置TIMER的Interval属性,并设置enable/disable属性就完事儿。实际上,多线程,这是二十年前我就听说过的术语,但我一直没有去尝试实现过,当然这跟我没有找到很好的老师傅可以教授相关知识相关。4个LunchTHx按键的回调函数名都是on_LunchTH,该回调函数需要分辨是哪个按键触发的事件,来决定机台号,并向线程池提交一个新的线程池任务即创建一个新的子线程。
2026-01-29 09:39:53
533
原创 32位的CVI2010基于ExcelReport库无法正常访问64位EXCEL的解决方案
然后跟豆包搞了一个周末,无果。不甘心,周一晚上又跟千问纠缠了三个小时,各种修改DCOM、COM配置方法都试了一个遍,还联机修复了office并重启,还是不行,千问总是说,32位的CVI2010,就该调用32位的excel,而不是64位excel。但我100%确定,新电脑运行32位的CVI2010基于ExcelReport库,是100%可以正常访问原装64位office365的。1,打开wps.cn官网,再下载页电“更多下载”,选windows (32位),下载并安装32位WPS Office。
2026-01-12 22:43:25
127
原创 CVI基于VISA对DSA8200编程
它将用于每个仪器硬件总线类型的更低层次的驱动程序抽象化,并提供一个单一的API(Application Programming Interface,即程序之间的接口)实现与仪器的通信,而不必考虑具体的总线接口。一路next,最后在NI MAX界面中,我们就得到了一个网络设备,资源名为“TCPIP0::129.9.0.11::instr0:INSTR”:注意,这里的instr0是自定义的LAN口设备名,可以为空,所以后面编程时,ViName可以是“TCPIP0::129.9.0.11::INSTR”。
2026-01-05 17:02:18
965
原创 CVI多线程例程学习心得
豆包说,该例程是CVI官方极简版多线程示例,核心目的是演示「默认线程池 + 异步任务 + 优雅退出」的基础用法:通过线程池启动两个独立线程以不同的频率更新面板控件数值,面板关闭时标记退出标志,等待线程完成后释放资源,全程基于 CVI 内置的默认线程池,无复杂业务逻辑,聚焦多线程函数的核心流程。} 是为了让线程池线程响应系统事件(如TCP回调),避免线程阻塞导致TCP事件无法处理,这是CVI多线程UI程序的典型写法,和线程池函数本身无关,但保证了任务的正常运行。等我学会了,我就来当辅导员,授人以渔。
2025-12-30 17:34:21
987
原创 用傲梅分区助手对C盘进行扩容
第二步,点击界面右边的功能列表中的“合并分区”,勾选C盘与相邻未分配空间。提交,傲梅分区助手将开始自动重启进入内置的PreOS环境执行分区操作。漫长的贤者时间,蓝色整屏显示“正在准备windows,请勿关闭计算机”,一直在转圈圈……第一步,右键D盘,选“调整/移动分区”,缩小D盘然后会空余出一个未分配空间出来。大致步骤是,运行傲梅分区助手.exe,可见C盘和D盘是同一物理硬盘的两个分区。第三步,去吃午饭,回来再看C盘已经扩容成功。
2025-12-23 14:13:21
501
原创 搭建一个基于星空组网的免费虚拟局域网
笔记本浏览器打开链接https://starvpn.cn/,下载“星空组网”EXE,安装后用管理员手机号+管理员密码登录,先完成姓名+身份证号的实名认证,之后就可以一口气添加最多20个免费的设备账号+设备登录密码,付费用户可增至200个。这意味着,只要公司的服务器已经连接到互联网并用服务器账号登录了“星空组网”,则我回家或出差时,在我的笔记本上用客户端账号登录“星空组网”,则公司的服务器和我的笔记本将处于同一虚拟局域网,就可以很方便地对服务器做远程访问了。三、 管理员笔记本下载运行“星空组网”EXE。
2025-12-18 22:32:08
734
原创 CVI基于TCP的C/S例程学习心得
其中,服务器端(Server):作为TCP服务器,启动后监听指定端口(如默认的5000),支持同时接收多个客户端的连接请求,并为每个客户端创建独立的通信线程。函数ConnectToTCPServer (&g_hconversation, portNum, tempBuf, ClientTCPCB, NULL, 5000) 是 TCP 客户端主动连接服务器的核心API,用于客户端程序向指定 IP+port的TCP服务器发起连接请求,并绑定客户端的TCP事件回调函数ClientTCPCB。
2025-12-18 00:26:29
855
1
原创 MCU作为I2C一级从机实现对I2C二级从机XY5924D的I2C透传
而更麻烦的是,XY5924D的I2C从机,不支持多Byte连续写这么一个重要的feature,居然没明文写在datasheet中,是我们连续写失效之后再咨询原厂才得到的回复,这就难免令人怀念起美国Genumn公司的datasheet的高质量了。在Reg00h=0xD2前提下,写Reg14h=0xD2;但是,国产芯片总有一些不严谨的地方,比如Reg56h的bit3,是1.8V的LDO的开关控制信号,无论在哪个Page改写Reg56h的bit3,其他Page的Reg56h的bit3都会跟着同时变化。
2025-11-22 12:11:06
418
原创 PI15021规格书的读书笔记
敲小黑板了,烧LD的索命鬼来了,就是TEC_PID_K/TEC_PID_I寄存器不能随便乱设。实现HardPIN_Clear,需要配置CFG_DAC_EN[0]=1(DAC输出使能,Block1Reg02),CFG_ PWDWN_EN[0]=0(低功耗禁止,Block1Reg03),CFG_CLR_MODE[0]=1(VDAC受控于CFG_IDAC_CLR_VAL寄存器,Block1Reg0C),CFG_DAC_CLRPIN_EN[0]=1(受控于Dis/Clear管脚)。上面两个图必须结合在一起看。
2025-11-14 16:58:03
400
原创 CVI的Table表格控件的编程及PI15021的16bit寄存器的I2C访问
完了点击“Edit Column”按键,在弹出的“Edit Column 1”窗口,点击“Edit Default Cell Value”按键,配置单元格以4个字符长度显示Hex进制的数值,对齐方式选Center Center,表头和单元格的字体一列改成更圆润更紧凑的“NIAppMetaFont”,字号保持默认的12,且列宽=40。”按键,然后填入row=8且column=16。”按键,在弹出的“Edit Column 1”窗口,勾选“Use Lable Test”,然后在“Lable”栏填入“0”。
2025-11-10 18:38:53
805
原创 JetBrain公司出品的免费的数据库管理神器DataDrip
然后,连接名改成“rd_user@localhost”,账号请填入“rd_user”(这是之前在安装MySQL5.7时,就额外新增的一个低权限用户,只能读写已有的数据库,不能创建数据库甚至不能创新新表单,不能删库跑路),密码请填入“User123”,最后点击“测试连接”,可见连接成功。点击“确定”,回到DataDrip主界面,此刻我们已经新建了一个MySQL的服务器连接,但左侧的数据库资源管理器,还看不到熟悉的数据库及其表单,因为我们尚未选择构架。点击“加号”图标,选“数据源—MySQL—MySQL8”。
2025-10-27 13:02:37
403
原创 光模块的CVI-ATE后段编程方案 (工单和订单管理单元 + 入库到E2改制到出库到测试报告导出单元)
比如以前约定的工序是先改制E2再入库,缺点很明显——E2改制的信息源头是订单决定的,如果没有订单就不能改制,那调测好的半成品就不能入库,而且为了满足交付生产投料一般会超投,那么即使有订单来了,则超额的半成品改制成该PO对应的产品入库后,要改成其他PO的产品发货就又得改制一番,很是麻烦。用户往<PO#>复选框输入工单上规定的PO号,一回车,就会执行<2, Get PO Information>按键的回调函数,就会从po表单中,回读并显示InnerPN/PN_E2/VN_E2/DT_E2到界面。
2025-10-24 19:30:42
986
原创 CVI-EXCEL编程
我前两天的功夫算是白费了,excel2000.fp是一种及其低级的生产力,谁用谁知道,我之所以率先学习基于低级生产力的例程,完全是因为这个excel2000dem.prj做得讨喜,完整地直观地实现了数据读写功能。更邪门儿的是,前两天CVI用着用着,先是不能运行原厂例程具体故障是在main()的LoadPanel这里发生致命错误(但我写的程序能LoadPanel),然后就是再也不能打开我写的那个访问EXCEL文件的程序了。我当时的状态,以我现在揣测,应该是只求实现功能,结果全局变量满天飞;
2025-10-02 01:42:47
799
原创 C语言动态调用CH341的64位DLL并二次封装成支持自己业务的64位DLL再静态调用
讲真,要不是我最近做的32bit的DLL,拿给别人用,被说道在一个exe里面,我的32bit的DLL无法和其他设备的64bit的DLL可以随意调用,我还真不知道位数不同的DLL,不能共存这个事情。可以看出其有2个参数,一个为DLL库文件的句柄,另一个为DLL导出函数的名称,当其在hModule库中找到与lpProcName想匹配的DLL函数时,返回该DLL函数的地址,否则返回NULL。可以看出其参数就是DLL库文件的路径,当其加载DLL库文件成功后,将返回DLL库文件的句柄,否则返回NULL。
2025-09-24 00:55:04
980
原创 MCU中用户数据的初值与存储问题
最后来看,在固件设计的时候,我们希望用户数组RAM_ARR,在MCU第一次上电后,就被赋值成预设值(Preset_value),并保存到对应的Data_FLASH。这样等MCU下次再上电,其Data_FLASH就已经保存有Preset_Vaule这个预设值了,至少RAM_Arr的某特定标志位就有匹配值了,等把Data_FLASH的数据赋值给RAM_Arr后,则RAM_Arr的某特定标志位就能匹配上了,就无需再从烧录在Code_FLASH区域的Preset_Vaule数组读入数据赋值给RAM_Arr数组。
2025-09-04 13:44:35
475
原创 TPAFEA008和XY5C24D避坑指南
比如,TPAFEA008芯片的datasheet,我最开始到手的版本是Rev.Pre.1,其寄存器描述表格中只有VDAC_buf而没有IDAC_buf的内容,而我要的Ibias就在IDAC上,真是大惑不解。然后上官网下载最新版Rev.A.2的datasheet,这才找到IDAC_buf的内容,原来在Rev.Pre.1中可能是作者用VDAC_buf的内容复制粘贴到Rev.A.2版本中IDAC的位置而忘了修改寄存器名到IDAC_buf,完了也没有审核就发布出来。当然,不熟悉元器件的时候,我们还是有坑必踩的。
2025-08-31 13:07:43
232
32位的CVI2010基于ExcelReport库无法正常访问64位EXCEL的解决方案
2026-01-12
光模块的CVI-ATE前段编程方案(模块初始化单元+发端调测试单元+收端调测试+长纤测试单元)
2025-11-12
光模块的CVI-ATE后段编程方案 (工单和订单管理单元 + 入库到E2改制到出库到测试报告导出单元)
2025-11-12
用Keil C51通过U-EC6仿真器下载EFM8的Bootloader程序并调试APP代码
2026-03-10
用SimpliCity Studio开发EFM8单片机,不写一句代码仅用全图形化配置CLU实现一个硬件或门
2026-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅