- 博客(67)
- 资源 (3)
- 收藏
- 关注
原创 使用vscode的keil studio pack插件+AI开发rt-thread项目
本文介绍了在VSCode中使用Keil Studio Pack插件开发RT-Thread项目的完整流程。首先通过scons --dist命令基于STM32G431 BSP构建项目,随后将工程转换为CMSIS格式。针对转换过程中出现的编译器版本问题,通过修改为默认ARM编译器版本6解决。重点解决了"_sys_tmpnam返回值冲突"错误,通过修改syscalls.c文件将函数返回类型从int改为void。最终成功构建项目,并指出该方案可在多个支持Keil Studio Pack插件的AI
2025-08-10 17:35:04
547
原创 面向对象C之common-io-basic 是如何利用c的面向对象控制外设的
这是一个Amazon FreeRTOS的Common IO基础库,提供了硬件抽象层(HAL)来控制各种外设。它使用C语言实现了面向对象的设计模式来管理外设。封装性: 通过不透明指针隐藏实现细节继承性: 所有外设继承统一的接口规范多态性: 通过回调函数实现不同外设的特定行为抽象性: 提供统一的HAL接口,屏蔽硬件差异模块化: 每个外设独立封装,便于维护和扩展代码具有良好的可移植性不同硬件平台只需实现相同的接口应用层代码与硬件解耦支持多实例管理(同一类型的多个外设)
2025-07-19 15:26:54
451
原创 面向对象C之A c-periphery是如何利用c的面向对象控制外设的
封装:通过不透明指针隐藏实现细节多态:通过函数指针表实现接口的多种实现抽象:统一的API设计和错误处理机制模块化:清晰的模块划分和依赖关系这种设计模式在系统级编程中非常实用,既保持了C语言的高效性,又提供了面向对象的便利性和可维护性。欢迎关注我的微信公众号“田公子的软硬件设计修炼”。
2025-07-19 15:25:13
794
原创 面向对象C之mr-library是如何实现对底层芯片的底层驱动的适配的
这种设计使得MR框架能够在保持统一API的同时,充分利用不同芯片的特性,实现了真正的"一次编写,多平台运行"。MR框架通过精心设计的分层架构和配置机制,实现了对不同芯片底层驱动的统一适配。应用层 → MR核心层 → BSP适配层 → 硬件抽象层 → 硬。欢迎关注我的微信公众号“田公子的软硬件设计修炼”。
2025-07-19 15:23:59
229
原创 mr-library 是如何用C语言利用面向对象实现各种外设的驱动的?
这种设计让C语言具备了面向对象语言的核心特性,同时保持了C语言的高效性和可控性,非常适合资源受限的嵌入式系统。欢迎关注我的微信公众号“田公子的软硬件设计修炼”。
2025-07-19 15:21:47
240
原创 脑电系统的噪声之噪声密度曲线该怎么用?
前面文章说过,对于脑电图机等脑电采集系统,噪声是很关键的指标。intan芯片和ads1299给出的是在特定配置下的噪声值,但是我们在使用外围的运放和电源芯片时,一般给出的都是噪声密度曲线,那么我们该如何使用噪声密度曲线呢?此处只考虑电压噪声密度曲线。对于运放,输入电流噪声还会通过运放的输入阻抗产生更多的噪声电压,这先不考虑电流噪声。
2025-07-19 15:20:34
606
原创 滤波器设计-降低系统噪声之妙法
理想的低通滤波器是砖墙滤波器,只有通带和阻带,但实际滤波器的衰减曲线达不到与横轴垂直,包含通带、过渡带、阻带,只能通过增加滤波器的阶数,来减小阻带来接近砖墙滤波器。随着低通滤波器的添加,噪声的带宽会被限制到滤波器的带宽,它随着电路阶数的增加而逐渐趋近于信号带宽。噪声=30nV/√hz * √(10Mhz * 1.57)噪声=30nV/√hz * √(10Mhz * 1.22)上述的滤波器的具体设计敬请关注我后续的文章和工具。噪声的RMS值=噪声密度 * 噪声带宽开根号。
2025-07-19 15:16:46
249
原创 为什么我设计的脑电采集系统的噪声这么大呢?
噪声(输入噪声)是脑电采集系统的一个关键的性能指标。对于EEG测量,GB9706.226的原话是“折合到输入端由 EEG 运放和患者电缆引起的信号噪声不应超过6 μV 峰谷值(RTI)。
2025-07-19 15:15:25
640
原创 硬件计算工具小程序介绍
对于硬件工程师或电子工程师,在设计DCDC电路、LDO电路时经常会遇到所需电压和器件手册的推荐电路的输出电压不同的情况,这时就需要自己去选择分压电阻。选择时,本质是输出电压经过上下拉电阻的分压后要得到FB电压,虽然利用输出电压和FB电压的关系得到了上下拉电阻的比例关系,但是电阻不是任意规格都有,而是有不同的电阻系列表,这时就需要不断的尝试和计算才能找到相对合适的,而基本选好之后,还要考虑货期问题,电阻精度问题,这可能会导致重新选择电阻。
2025-07-19 15:14:07
300
原创 模拟信号采样时的混叠现象及对策
就像人的感知一样,电子产品也会有自己的传感器,这就涉及到了传感器输出的模拟信号采样。采样时如果,采样率和输入信号之间的关系不满足奈奎斯特定理,就会出现混叠现象。如下图是TI的培训课程里的一张截图:输入信号是红色的900Khz,采样率1M(采样时刻发生在图中的0、1、、10),这样采样得到的信号是左侧的黑色部分,对应的频率是fs-fin;一般而言,大于采样率一半的信号会产生混叠,混叠处的信号的频率是fs-fin;归根结底就是采样率不够快,采样率到达不了2倍的输入信号以上。
2025-07-19 15:07:27
440
原创 uv安装笔记
众所周知,目前MCP是大势所趋,前几天连openAI都官宣支持MCP了。而目前的python实现的MCP(比如能生成3D模型的Blender-mcp)都是以uvx命令来运行的,所以uv命令的安装是必须的。所以本文将记录一下如何安装uv,以及如何解决在VSCode终端无法识别uv的问题。
2025-07-19 15:05:06
708
原创 建立自己的mcp server-cline
从一个访谈里看到一句话,觉得挺有道理的。AI编程的现阶段是:human describe,AI do,human debug。想要AI do一次性把你想做的完全实现是不太现实的,后续的debug还是很重要的。至于为什么要做自己的mcp server ,因为这是趋势。可以做自己的工作提效,做自己的coze。
2025-07-19 15:03:49
218
原创 EverArt MCP 服务器安装调试笔记 -cline
用户在使用 EverArt MCP 服务器时遇到报错:“MCP error -1: Connection closed”。用户通过手动安装 服务器,并更新 MCP 配置文件后,问题得到解决。总结: 中配置的 everart 服务器路径错误,指向了 SDK 而非 服务器。正确的解决方案是安装 服务器,并更新配置文件。注意: 需要替换为用户本地 仓库的实际路径。
2025-03-11 20:00:30
1130
原创 Obsidian Web Clipper 深度使用笔记:Deepseek 智能加持,微信公众号等素材高效管理
Obsidian Web Clipper 是一款强大的浏览器扩展,它可以将网页内容快速保存到你的 Obsidian 知识库中。而我们今天要深入探讨的,是如何通过配置,让 Obsidian Web Clipper 拥有AI 智能摘要的能力。这意味着,在剪藏网页内容的同时,Deepseek 大模型可以自动为你总结文章要点、提取关键信息,并将其一并保存到 Obsidian 笔记中,极大地提升了素材处理效率。核心优势:利用 Deepseek 大模型自动总结网页内容,快速获取文章核心信息。
2025-03-04 22:39:54
1413
原创 Fetch MCP 安装笔记-roo cline实操版本
MCP 参考@https://github.com/langgptai/LangGPT 帮我生成一个langgpt的提示词,写到langgpt提示词.md。@/mcp_expert.md 参照这里的提示词,帮我安装https://github.com/zcaceres/fetch-mcp 这个fetch MCP。@MCP 学习这个文档,帮我生成一个MCP应用专家,来帮我构建MCP应用,要求生成langGPT格式的提示词mcp_expert.md。将以下配置添加到 MCP 配置文件,即,使用绝对路径 (
2025-02-25 11:17:09
1008
原创 『效率神器』Cursor AI助手帮你写代码生成电路图,SKiDL+KiCad实战教程
AI能帮我们利用代码进行3D建模,那么能不能帮我们画电路图呢?答案是肯定的,本文将介绍如何使用 Cursor AI + SKiDL + KiCad 这套工具链,让AI帮你自动生成电路代码,提升电路设计效率。
2025-02-23 20:30:35
2319
原创 释放你的创造力:Cursor助力,用代码玩转Blender和FreeCAD
代码建模为DIY爱好者们提供了一种全新的3D建模方式。通过编写简单的代码,我们可以轻松控制Blender和FreeCAD,创造出各种各样的模型。这不仅降低了建模的门槛,也为我们的创意提供了无限的可能。如果你也对3D建模感兴趣,不妨尝试一下代码建模吧!相信你一定会爱上这种简单、高效、充满乐趣的建模方式。这只是一个开始。。。
2025-02-22 12:29:48
1152
原创 VS Code 使用通义灵码插件和 PlatformIO 插件快速生成 Arduino 框架下的 LED 闪烁代码
易用性对比PlatformIO 提供了更强大的项目管理功能,但上手难度相对较高。📈Arduino IDE 更加简单易用,适合初学者。👶功能对比PlatformIO 提供了更多的功能,例如库管理、构建配置等。⚙️Arduino IDE 的功能相对较少。🧩资源占用对比PlatformIO 占用的资源相对较多。💾Arduino IDE 占用的资源相对较少。💿5.2 通义灵码插件 vs Cursor AI代码生成能力对比。
2025-02-16 21:18:22
845
原创 使用Cursor_AI快速生成Arduino框架下的LED闪烁代码
在完成ESP32和STM32两个平台的LED驱动实现后,我们来对比分析它们在Arduino框架下的差异和特点。📊代码生成更快捷🚀自动补全常用函数和变量智能提示可能的错误生成规范的注释说明开发体验更友好💡实时代码优化建议快速查找示例代码智能代码格式化学习曲线更平缓📚提供相关API说明解答常见技术问题推荐最佳实践方案联系方式📮微信公众号: 田公子的软硬件设计修炼更新订阅📢关注公众号接收最新教程加入开发者社群参与讨论。
2025-02-16 18:13:08
1122
原创 〖AI代码革命〗Cursor:编程效率翻倍的秘密武器
在项目根目录创建.cursor# 生成Python类时自动添加类型提示和docstring templates : python_class : | # 生成一个{{name}}类🚀 快速原型开发(3天需求1天交付)📖 学习新技术(让AI解释源码)🐛 疑难Debug(比Stack Overflow更快)彩蛋福利一句话生成贪吃蛇游戏。也能编写嵌入式代码哦。关注公众号【田公子的软硬件设计修炼】,获取更多内容。
2025-02-16 11:49:29
931
转载 CE的EMC测试(EN55022-EN55024-EN55014)-转载
EMC测试-概述 电磁兼容(EMC)是对电子产品在电磁场方面干扰大小(EMI)和抗干扰能力(EMS)的综合评定,是产品质量最重要的指标之一,电磁兼容的测量由测试场地和测试仪器组成。EMC测试-构成EMC包含两大项:EMI(干扰)和 EMS(敏感度,抗干扰) EMI测试项包括:RE(辐射,发射) CE(传导干扰) Harmonic(谐波) Flicker (闪烁)
2017-09-12 13:23:34
7605
转载 GB与CE标准对照表-转载
序号产品名称标准代号IEC/EN标准代号一、安全 1音频、视频及类似电子设备GB8898-2001IEC60065:1998EN60065:20022信息技术设备GB4943-2001IEC60950:1999EN60950
2017-09-12 13:22:19
5383
转载 关于热设计-以LDO 7805为例 - 转载
一、7805设计事例 设I=350mA,Vin=12V,则耗散功率Pd=(12V-5V)*0.35A=2.45W。按照TO-220封装的热阻θJA=54℃/W,温升是132℃,设室温25℃,那么将会达到7805的热保护点150℃,7805会断开输出。 二、正确的设计方法是: 首先确定最高的环境温度,比如60℃,查出民品7805的最高结温Tj(max)=125℃,那么允许的温升是65℃。要求
2017-09-06 23:14:42
2908
原创 STM32Cube + Sublime + Keil使用技巧 更新ing
STM32Cube1.通过Cube生成的pin 中断等的define生成在main.h中2.外设(PPP)驱动类的代码编写:如ADC的驱动;可以在Inc和SRC下各新建一个BSP文件夹分别存放PPP.h和PPP.c;PPP.c只包含PPP.h,PPP.h中包含stm32f1xx_hal.h和main.h3.外设(PPP)驱动类的代码的调用:Cube中的USER CODE的起始和终止之间
2017-08-16 10:40:49
2805
原创 CH340 +Micro USB转串口 不能识别 不起振问题
失败方案 1.CH340晶振是12Mhz,负载电容是22pF,加上1M电阻依然不能正常起振。成功方案 1..将USB信号线上的限流电阻10R改为0R。 2.更换优质的USB线。 可能的原因分析:USB是很高速的差分线,PCB布线要走差分线,使得通信质量提高;USB通信不成功时,会使得CH340的晶振不起振。
2017-07-31 17:32:15
5125
转载 关于学习方法的一段经典描述-转载
先 把要学的看成一个黑箱 ,它的内部结构是什么先不去管,而是搞清楚它的输入输出 是什么?具体说就是学习这门课程需要哪方面的技巧和预备知识,以及这门课的目 的 是什么?学了它能解决什么样的问题?把这些问题基本搞清楚了以后再尝试打开这个黑箱。打开黑箱的方法也不是一步完成的,而是一种灰色的认识反复迭代的过 程 ,让黑箱一点一点的由黑变灰由灰变白。也就是第一次不求搞懂里面所有的内容而是有一个大致了
2017-07-18 08:45:55
863
原创 STM32的ADC1+ADC3 16路采集 DMA传输 数据不错位
1) ADC多通道采集:(多通道采集必须用扫描模式,扫描模式时规则组的通道共用一个寄存器,so必须用DMA传输;为防止数据错位,不能用连续模式,而应在查询或中断中先关闭ADC转换,再开启ADC转换)so应采用扫描、非连续的方式、DMA正常模式,DMA的EOC中断或查询;上述的配置下,ADC运行流程如下:每个规则通道采集之后,每个ADC_DR会更新,这个更新会启动一次DMA,同时会产生EOC
2017-01-20 14:39:31
7951
3
原创 我的编码规范
1.函数标题及函数命名及函数中的注释/****************************************************************************************** @brief TM7705_SPI_Init* @param void* @return void* @note TM7705所用的SPI初始化
2016-12-29 12:38:25
921
转载 模数转换芯片AD7705的使用心得
本文为转载。AD7705应用总结: YW2314R12项目中用到了AD7705,先将AD7705的应用经验以及注意要点总结如下,这些经验同样适用于AD7799、AD7706等AD公司的拥有校准功能的AD芯片。 1.时序注意要点:数字接口迷失的时候可以通过ADIN输入持续32个脉冲周期(DCLK)以上的高电平将复位AD7705的数字接口,复位之后要等待500us以上才能访问AD7705芯
2016-12-27 11:18:24
22632
1
原创 ModBUS的一些好文章
1. STM32 移植FreeModbus 详细过程 http://www.amobbs.com/thread-5491615-1-1.html (出处: amoBBS 阿莫电子论坛)2. freemodbus移植stm32过程分析及代码 http://blog.sina.com.cn/s/blog_7880d3350101liev.html3. freemodbus-
2016-12-23 15:19:25
432
原创 常用的SCH和PCB设计软件导出DXF图
目前国内用CAXA的较多,常用的图纸模板都是CAXA的。CAXA能接收DXF格式的文件,选择并入文件到当前图纸即可,这样就避免了在OrCAD和PADS里专门设计模板的麻烦。so,PADS to CAXA:文件--->导出--->DXF---->选择相应的层和单位(top层和silk top bottom和silk bottom;单位选择mm)。 OrCAD to CAXA: *
2016-12-13 14:45:18
3376
原创 STC系列单片机烧录
STC系列的单片机1.烧录: 在烧录时,需要冷启动,即采用STC-isp烧录时,先给单片机断电,然后点击下载,然后马上给单片机上电,程序即可烧录进去。 举例:在采用CH340T做转换芯片,利用USB转串口烧录时需要利用RTS和DTR产生一个冷启动。2.一般不需要片外程序存储器时,需要EA上拉,使系统指针PC在启动时,指向内部程序存储器。
2016-12-05 16:23:59
3941
1
转载 网上看到的一个CRC8 CRC16 CRC32的源码
#include \"crc.h\" #ifdef _C51#define _flash code#define _FLASH _flash#endif #ifdef _C32#define _flash const#define _FLASH _flash#endif
2016-12-01 09:07:53
3771
原创 keil c51在线调试
没有调试芯片时,只能再选仿真调试。此时,将target中的时钟设为你实际要使用的时钟,then在Debug中选择Use simulator。 在view-register window,通过查看里面的sec的变化,来调试对于时序要求很严格的驱动,比较有效。
2016-11-24 09:30:45
2415
转载 keil c51 指针与存储类型
如STC89C51有512bytes的RAM,128的data,256的pdata,个别时候缓冲区较大,需要将其定义在pdata区,常量可放在code区。当使用的变量超过RAM时,就会编译不通过。Program Size: data=25.0 xdata=245 const=0 code=1970creating hex file from ".\OBJ\DS2480 Driver"...".\OBJ\DS2480 Driver" - 0 Error(s), 14 Warning(s).
2016-11-23 16:06:33
8012
1
转载 pid控制算法
pin算法int PIDCal(PID *pp, int ThisError){ //增量式PID算法(需要控制的不是控制量的绝对值,而是控制量的增量) int pError,dError,iError; double data0=0; pError = ThisError-pp->LastError; iError = ThisErro
2016-09-27 08:50:00
1139
1
转载 EMC接地
问题1. 屏蔽线屏蔽层应一端接地还是两端接地屏蔽接地通常采用两种方式来处理:屏蔽层单端接地和屏蔽层双端接地。①屏蔽层单端接地是在屏蔽电缆的一端将金属屏蔽层直接接地,另一端不接地或通过保护接地。在屏蔽层单端接地情况下,非接地端的金属屏蔽层对地之间有感应电压存在,感应电压与电缆的长度成正比,但屏蔽层无电势环流通过。单端接地就是利用抑制电势电位差达到消除电磁干扰的目的。这种接地方式适合长
2016-09-23 13:52:05
3962
1
STM32_Mat_Target_V5.6.0_setup.rar
2022-05-19
ST MathWorks Embedded Coder Support.rar
2022-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人