- 博客(50)
- 收藏
- 关注
原创 Canoe诊断无响应,提示诊断超时,但是CAN报文正常接收发送
打开CANoe, 在Home页面把Simulated Bus改成Real Bus。
2026-10-14 10:06:10
111
原创 ADC的类型和原理和滤波方法
通过不断重复此过程,逼近输出的精度越来越高,最终得到目标的数字化结果,这个比较的次数正好是ADC的量化深度,也就是位数。实际上,对于Sigma-delta ADC的理解可以通俗的认为是多次采样进行平均以达到更高的精度,比如我们采样1V的电压,可能当前的12bit精度不够,但是我们可以采样1000次,这样累加的电压1000V进行量化,然后在平均获得的精度会更高。需要注意的是,Sigma-delta ADC的转换速度通常比其他ADC方法慢,并且需要更高的时钟频率和更高的系统性能。
2026-10-14 09:52:36
114
原创 【无标题】
IAP技术的核心在于BootLoader程序的设计,这段程序预先烧录在单片机中,正常的APP程序可以使用BootLoader程序中的IAP功能写入,也可以两部分代码一起写入,以后需要程序更新时通过IAP进行代码更新。每次板卡上电都会首先执行BootLoader程序,在程序内判断进行固件升级还是跳转到正常的APP程序。是否进行固件升级的判断可以从硬件和软件两个方面进行考虑。硬件实现:通过拨码开关、跳线帽等方式设定单片机某一引脚电平状态,程序通过读取引脚电平判断是否需要升级。
2026-10-14 09:52:09
176
原创 原理图设计笔记
在电源突然中断或电压波动时,电容可以释放存储的电能,保持电路的稳定运行,防止因电源问题导致的系统崩溃。电容在VCC和GND之间可以起到解耦和隔离的作用,减少不同模块之间的电源干扰,提高系统的稳定性和可靠性。通过合理选择电容的类型和参数,可以实现电源时序的精确控制,满足特定应用的需求。而电容在VCC和GND之间有诸多作。1.VCC 与VDD的区别,都是器件的电源端,VCC一般是双极性器件(有正反方向),VDD是单极性器件。5.电容的作用一般是储能和滤波,在电源电路中,一般都会加电容来储能和滤波。
2026-10-14 09:46:40
78
原创 MAX485 通信原理
MAX485是半双工通信,电平是差分信号,需要485芯片实现电平转换,市面上甚至出现了自收发的485芯片。下面将介绍485通信原理,普通485芯片和自收发的485芯片区别。二、485芯片示例MAX485。
2026-10-14 09:46:11
180
原创 CANoe 看不到 CANFD 的报文,CANape多设备工程只测量一个设备的方法
问题:CANoe 的 trace 只能看到诊断报文,没看到 CANFD 的报文。
2026-08-26 09:09:03
207
原创 CANoe常用校验算法CPAL代码
/ ---------- 滚动计数器(移至 data[60], data[61]) ----------/***************** CRC8 计算****//***************** CRC16 计算****/
2026-08-19 17:23:24
196
原创 UDS 消极响应
在UDS(统一诊断服务)协议里,当ECU收到一个诊断请求后,如果因为某些原因无法处理,它不会直接忽略,而是会回复一条**否定响应(Negative Response)**。- **说明**:某些服务(如安全访问、通信控制)的否定响应会**回显子功能**,帮助诊断仪定位具体哪个子功能失败。- **示例**:请求 `27 01`,响应 `7F 27 01 35`(子功能=01,NRC=35)- **说明**:最常见的否定响应,ECU直接告知请求失败,并附带具体原因码(NRC)。常见的否定响应码(NRC)分类。
2026-08-13 09:46:18
184
原创 汽车电子面试问题记录
4.使用硬件IIC会有什么问题,硬件IIIC和软件IIC对比。3.C语言基础 结构体,指针,指针函数,函数指针的区别。6.静态变量如何实现跨文件使用:通过函数间接调用。5.CAN OTA的流程。1.CAN如何实现仲裁。
2026-07-22 09:10:32
40
原创 在Keil中使用Clang-Format对齐代码
既是一个库,也是一个独立的工具,它的目标是根据可配置的样式指南自动重新格式化源文件,主要是处理缩进、换行、对齐、空格等排版问题。可用来格式化C/C++、Java、JavaScript、Objective-C、Protobuf、C# 等代码。其内置有几种代码风格分别是LLVMMozillaGNU,也可以使用自定义的样式YAML配置文件(.clang-format )来进行配置。优先使用项目中的 .clang-format文件,如果项目中不存在配置文件,会查找系统中的 .clang-format 文件。
2026-07-02 09:45:42
269
原创 光耦、三极管、mos管的作用和电路设计
选型使用的时候需要考虑输入端接的电压,发光二极管最大导通电压,算出二极管导通时最小电流Ib,从而确定Ic(饱和)= CTR*Ib,当三极管处于饱和状态,C-E 压降≈0.2V最小,故需要。原理:利用三极管的截止区(关断)和饱和区(打开),实现开关通断,输入低电平(<0.6V)时三极管完全关断,相当于开关断开;原理:光耦输入端是发光二极管,发光二极管发光后,集电极和发射极会导通,实现输入端和输出端电器隔离,即 电-->光--->电;作用:电流放大+开关,主要用开关电路的应用比较多,故只记录开关作用。
2026-06-30 14:33:40
243
原创 以太网学习
,由网络管理员或 DHCP 服务器动态分配。可手动配置或随网络环境变化(如连接不同 Wi-Fi 时 IP 会变)。IPv4 为 32位(4字节)二进制,表示为四个十进制数,如 192.168.1.1;IPv6 为 128 位。,确保全球范围内不重复,物料上不可更改。由6字节组成,前三节由IEEE国际组织分配给网络厂商,后三字节由网络厂商自己定义。存在于数据链路层,用于同一局域网(如以太网)内设备之间的直接通信。(硬件地址),全球唯一,用于唯一标识网络设备的 。
2026-03-05 10:17:34
338
原创 触觉传感器
一、.市面上的类型目前市面上的触觉传感器都是在实验阶段,达到产品化的不多1.Contactile三轴触觉力传感器Contactile是机器人触觉传感器的创新者,通过独创的光学原理触觉传感器,可以为机器人抓取和柔性作业系统提供像人手一样的触觉感知优,阵列式触觉传感器可提供机器人柔性抓取和灵巧操作所需的如下触觉力参数:▲ 局部3维偏移、3维力和3维振动 ▲ 全局三维力和三维力矩。
2026-02-06 11:13:54
497
原创 STM32 音频播放:TM8211+PAM8403
STM32 有I2S外设,可通过I2S外设接DAC转换芯片,再接功放和扬声器,播放声音;音量调节:如果音量控制放在功放的输出端,控制的是功放输出的增益,而不是输入信号的强弱,所有噪声不会衰减。如果音量控制放在功放的输入端,就可以控制输入信号的强弱,在小音量时输入信号和背景噪声就会同步减少,对提高功放输出功率的音质是有好处的。STM32_I2S+TM8211+PAM8403播放音频。
2026-01-29 13:53:51
590
原创 STM32F407VET6 USB HOST 驱动FT232RL串口模块
背景:由于做的项目用到的通信设备使用的是FT232RL芯片,而主控设备的芯片是STM32F407VET6,需要实现STM32F407VET6 USB HOST 驱动FT232RL与设备通信。在main.c文件的while里面函数添加FT232_SendLogic函数即可。本功能是基于STM32CUBEMX生成的CDC HAL库代码+KEIL 开发。1、修改/*Communication Class codes*/源文件:usbh_cdc.c,修改部分代码。头文件:ft232.h。源文件:ft232.c。
2026-01-20 17:47:05
342
原创 STM32F407+LAN8720A以太网ping测试无法访问目标主机
问题解决:在STM32CUBEMX的lwip配置中,修改lwip的Key Option的下面陪配置,问题解决(图片从某个论坛获取,忘记论坛链接了,我也是跟着该论坛改的)问题::用STM32CUBEMX生成lwip代码,STM32F407+LAN8720A以太网接电脑ping测试无法访问目标主机,两个指示灯都亮。
2026-01-15 14:12:25
243
原创 STM32F407+LAN8720指示灯不亮
原因:LAN8720的晶振是25M,示波器测量只有8M, 之前主控MCU的晶振用25M,后来改成8M,估计是因为MCU的晶振在8M和25M之间频繁更换导致lan8720的晶振损坏导致。问题:RJ45的两个指示灯不亮,之前是亮的。解决:更换lan8720的晶振。
2026-01-15 12:14:19
199
原创 UART、SPI、IIC、RS485、CAN、RS232
1、UART:一对一通信、适合短距离芯片与芯片通信;长距离易受干扰,通信速率较低;4、RS485:适合长距离,可达上千米;也适合一对多通信,;2、SPI:高速,通信速率可达10M,适合一对一通信;3、IIC:适合一对多通信,;
2025-04-27 21:59:06
267
原创 电容使用总结
4.纹波电流:如果纹波电流超过其额定纹波电流,电容寿命将缩短,在极端情况下,其内部发热会将其烧毁。在这种电路中,要使用高纹波类型的电解电容。1.电容器两端电压是高压,放电时间不超30分钟,低压不超24小时;2.电容器电压小于等于安全电压可以不用放电;2.电容额定电压≥电容两端实际电压的1.5倍。3.电解电容远离热源,以防受热加速电解液干涸。1.电容正负极不可接反,接反会出现异常电流。根据电路中的芯片手册要求。
2025-04-16 14:48:37
554
原创 PCB设计总结
PCB板,也称印制电路板,是一种通过将导电铜箔图案化铺设在绝缘材料(如玻璃纤维、环氧树脂等)表面上,形成电子元器件之间的电气连接的板子。1.先布高频信号(UART、SPI),差分信号(CAN、485、USB转以太网),高频信号要包地,即信号线和其他线不要走太密,使得信号线和其他线有空间铺铜。检查原理图,包括DRC,元器件选型,电路设计等,因为在PCB设计过程,原理图的改动都会导致PCB改动,特别是封装改动、变化大是最麻烦的。铺铜,若电源有大电流,可以线通过铺电源信号铜来增大信号的电流承载能。
2024-12-15 16:10:55
596
原创 485通信时好时坏 不稳定问题
使用485过程中,发现有时候上位机可正常接收数据,有时候收到错误的数据” 说明MCU可以正常接收上位机的报文,只是在发送报文给上位机时错误,于是我用逻辑分析仪分析485芯片收到来自MCU的UART数据和485发送给上位机的485数据,发现分析与解析出来的单片机发送的数据和485发送的数据是一样的,无解。这会导致信号的延迟,从而增加通信系统的响应时间。于是分别测试DE和DI,RE和RO,由485的逻辑电平可知,DE高电平时,DI的数据才能有效发送,发现DE比DI延时,所以DI的第一位可能已经丢失。
2024-11-24 15:01:15
5192
转载 VCC 与VDD 的区别
而VCC的含义为“Voltage To Current Converter”(电路电压)或“Voltage Collector Collector”(集电极电源电压),其中的“C”可以理解为“Circuit”(电路),它表示接入电路的电压或双极性晶体管的正电源。3. 在供电范围上,VCC通常指为外设和内部电路系统(包含所有器件)提供电压,而VDD则更倾向于表示单一器件的供电电压。1. 在数字电路中,VDD通常用来表示芯片的内部工作电压,而VCC则表示电路的整体供电电压。
2024-09-26 11:48:06
3337
转载 STM32CUBMX生成的MDK代码编程出现L6236E : No section matches selector - no section to be FIRST/LAST 的解决方法
遇到的问题:用MX 生产STM32F103C8T6的MDK代码后,点编译后出现错误代码“L6236E : No section matches selector - no section to be FIRST/LAST”原文链接:https://blog.youkuaiyun.com/weixin_55669909/article/details/127499093。出现错误的原因:没有加入启动文件:startup_stm32f103xb.s。解决方法:自己加入启动文件。
2024-07-08 16:53:33
652
原创 STM32CubeMX工程配置——STM32F103C8T6 CAN通信
【代码】STM32CubeMX工程配置——STM32F103C8T6 CAN通信。
2024-07-06 17:26:21
3452
2
原创 keil5 MDK 的异常提示Note: object file renamed from “xxx.o“ to “xxx_1.o“
问题:在keil编译过程中遇到此报错“Note: source file '..\Core\Src\usart\usart.c' - object file renamed from 'SMT32F103\usart.o'
2024-07-06 10:26:26
2398
2
原创 单片机运行原理
例如,在3-8解码器中,每个输出端口都与一个反向器组成,其输入端口分别与一个三输入与门的输出端口相连,而该与门的三个输入端口则根据解码器的工作原理连接到输入端口的地址线上,这样当输入信号对应的地址线上出现特定的二进制编码时,就可以在相应的输出端口上获得1的输出。它的作用是为单片机提供稳定的时钟信号,以控制CPU和其他模块的运行。逻辑门(如与门、或门、非门)、触发器(如D触发器、JK触发器)、多路复用器、解码器、时钟电路等组成单片机了处理器核心、内存、输入/输出接口和时钟等功能模块的集成电路芯片。
2023-09-19 22:37:36
855
原创 CRC校验
数据帧帧头数据校验位帧尾校验位是为了在数据传输过程中出错时能及时检出,在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。通常采用一种指定的算法对原始数据进行计算,得出的一个校验值。
2023-09-09 17:38:05
848
1
原创 选择结构语句:if else,if -else if-else,switch-case
if-else 结构只执行if 的语句else 的语句,必会执行其中一个。当if条件成立时,执行语句1,跳出该选择结构;否则执行else后的语句2int a=6;if(a>5)//满足条件,执行语句1a++;//语句1elsea=a+1;//语句2。
2023-08-05 11:07:14
400
1
原创 keil J-Link烧录问题
②配置置jlink的时候,SW Devices scan不到SWDI,SWDI为空。这是因为设置jlink的时候要选择好芯片类,还报错的话,就添加芯片内存地址。jlink的四根烧录线和芯片直接接触不良或者没接好。
2023-07-03 11:19:05
1619
1
原创 消抖时间设置
电机,之类的,结构较大的产品消抖时间需要长些,为一百到几百毫秒。消抖时间可以根据不同产品设置不同的时间。按键,键盘,消抖时间一般为几十毫秒。
2023-07-01 07:15:08
3785
原创 单片机I/O口输入输出阻抗
在具有电阻、电感、电容的电路里,对交流电所起的阻碍作用叫阻抗,用Z表示。阻抗由电阻、容抗、感抗三者组成,但不是简单三者相加,单位为欧。解决单片机端口问题时,可以将阻抗简单看成电阻,忽略容抗和阻抗。
2023-06-15 21:39:52
3783
原创 滴答定时器
该函数使用当前SysTick计数器的值和计算出的延时所需的SysTick计数器值之间的差来计算延时时间。在循环中,如果当前SysTick计数器的值大于初始值,则直接减去它们的差;如果当前SysTick计数器的值小于初始值,则减去它们的差再加上SysTick计数器的最大值。是系统时钟频率,这里假设为1MHz,将SysTick的计数器周期设置为1毫秒(1000Hz)。这样就可以使用SysTick定时器在32位单片机上进行精确的延时了。点击复制后,将打开C知道体验页。
2023-05-24 21:30:18
1708
原创 C语言常用算法
用冒泡排序对这四个数排序,需要进行(4-1)轮比较,每轮都对相邻的两个元素进行排序。以此类推,直到待排序序列中仅剩 1 个元素,无论再进行相邻元素的比较,因此直接将其并入已排序序列中。//这是不带输出的冒泡排序实现函数,通过此函数,可直接对数组 a 中元素进行排序。//这是不带输出的冒泡排序实现函数,通过此函数,可直接对数组 a 中元素进行排序。//这是带输出的冒泡排序实现函数,从输出结果,可以看到冒泡的具体实现流程。//这是带输出的冒泡排序实现函数,从输出结果可以分析冒泡的具体实现流程。
2023-04-27 17:30:38
3902
STM32 USB作为HOST驱动FT232R
2025-11-17
1.STM32F4能不能驱动 USB转串口类型的设备,
2025-11-01
每次都是用jlink 烧录一次程序后就识别不了了
2024-07-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅