- 博客(37)
- 收藏
- 关注
原创 触觉传感器
一、.市面上的类型目前市面上的触觉传感器都是在实验阶段,达到产品化的不多1.Contactile三轴触觉力传感器Contactile是机器人触觉传感器的创新者,通过独创的光学原理触觉传感器,可以为机器人抓取和柔性作业系统提供像人手一样的触觉感知优,阵列式触觉传感器可提供机器人柔性抓取和灵巧操作所需的如下触觉力参数:▲ 局部3维偏移、3维力和3维振动 ▲ 全局三维力和三维力矩。
2026-02-06 11:13:54
321
原创 STM32 音频播放:TM8211+PAM8403
STM32 有I2S外设,可通过I2S外设接DAC转换芯片,再接功放和扬声器,播放声音;音量调节:如果音量控制放在功放的输出端,控制的是功放输出的增益,而不是输入信号的强弱,所有噪声不会衰减。如果音量控制放在功放的输入端,就可以控制输入信号的强弱,在小音量时输入信号和背景噪声就会同步减少,对提高功放输出功率的音质是有好处的。STM32_I2S+TM8211+PAM8403播放音频。
2026-01-29 13:53:51
376
原创 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
248
原创 STM32F407+LAN8720A以太网ping测试无法访问目标主机
问题解决:在STM32CUBEMX的lwip配置中,修改lwip的Key Option的下面陪配置,问题解决(图片从某个论坛获取,忘记论坛链接了,我也是跟着该论坛改的)问题::用STM32CUBEMX生成lwip代码,STM32F407+LAN8720A以太网接电脑ping测试无法访问目标主机,两个指示灯都亮。
2026-01-15 14:12:25
167
原创 STM32F407+LAN8720指示灯不亮
原因:LAN8720的晶振是25M,示波器测量只有8M, 之前主控MCU的晶振用25M,后来改成8M,估计是因为MCU的晶振在8M和25M之间频繁更换导致lan8720的晶振损坏导致。问题:RJ45的两个指示灯不亮,之前是亮的。解决:更换lan8720的晶振。
2026-01-15 12:14:19
129
原创 UART、SPI、IIC、RS485、CAN、RS232
1、UART:一对一通信、适合短距离芯片与芯片通信;长距离易受干扰,通信速率较低;4、RS485:适合长距离,可达上千米;也适合一对多通信,;2、SPI:高速,通信速率可达10M,适合一对一通信;3、IIC:适合一对多通信,;
2025-04-27 21:59:06
224
原创 电容使用总结
4.纹波电流:如果纹波电流超过其额定纹波电流,电容寿命将缩短,在极端情况下,其内部发热会将其烧毁。在这种电路中,要使用高纹波类型的电解电容。1.电容器两端电压是高压,放电时间不超30分钟,低压不超24小时;2.电容器电压小于等于安全电压可以不用放电;2.电容额定电压≥电容两端实际电压的1.5倍。3.电解电容远离热源,以防受热加速电解液干涸。1.电容正负极不可接反,接反会出现异常电流。根据电路中的芯片手册要求。
2025-04-16 14:48:37
447
原创 PCB设计总结
PCB板,也称印制电路板,是一种通过将导电铜箔图案化铺设在绝缘材料(如玻璃纤维、环氧树脂等)表面上,形成电子元器件之间的电气连接的板子。1.先布高频信号(UART、SPI),差分信号(CAN、485、USB转以太网),高频信号要包地,即信号线和其他线不要走太密,使得信号线和其他线有空间铺铜。检查原理图,包括DRC,元器件选型,电路设计等,因为在PCB设计过程,原理图的改动都会导致PCB改动,特别是封装改动、变化大是最麻烦的。铺铜,若电源有大电流,可以线通过铺电源信号铜来增大信号的电流承载能。
2024-12-15 16:10:55
524
原创 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
4544
转载 VCC 与VDD 的区别
而VCC的含义为“Voltage To Current Converter”(电路电压)或“Voltage Collector Collector”(集电极电源电压),其中的“C”可以理解为“Circuit”(电路),它表示接入电路的电压或双极性晶体管的正电源。3. 在供电范围上,VCC通常指为外设和内部电路系统(包含所有器件)提供电压,而VDD则更倾向于表示单一器件的供电电压。1. 在数字电路中,VDD通常用来表示芯片的内部工作电压,而VCC则表示电路的整体供电电压。
2024-09-26 11:48:06
2467
转载 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.csdn.net/weixin_55669909/article/details/127499093。出现错误的原因:没有加入启动文件:startup_stm32f103xb.s。解决方法:自己加入启动文件。
2024-07-08 16:53:33
614
原创 STM32CubeMX工程配置——STM32F103C8T6 CAN通信
【代码】STM32CubeMX工程配置——STM32F103C8T6 CAN通信。
2024-07-06 17:26:21
3100
原创 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
2159
2
原创 单片机运行原理
例如,在3-8解码器中,每个输出端口都与一个反向器组成,其输入端口分别与一个三输入与门的输出端口相连,而该与门的三个输入端口则根据解码器的工作原理连接到输入端口的地址线上,这样当输入信号对应的地址线上出现特定的二进制编码时,就可以在相应的输出端口上获得1的输出。它的作用是为单片机提供稳定的时钟信号,以控制CPU和其他模块的运行。逻辑门(如与门、或门、非门)、触发器(如D触发器、JK触发器)、多路复用器、解码器、时钟电路等组成单片机了处理器核心、内存、输入/输出接口和时钟等功能模块的集成电路芯片。
2023-09-19 22:37:36
797
原创 CRC校验
数据帧帧头数据校验位帧尾校验位是为了在数据传输过程中出错时能及时检出,在数据传输过程中,无论传输系统的设计再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1,或者1变为0),从而接受方接收到错误的数据。为尽量提高接受方收到数据的正确率,在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。通常采用一种指定的算法对原始数据进行计算,得出的一个校验值。
2023-09-09 17:38:05
794
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
358
1
原创 keil J-Link烧录问题
②配置置jlink的时候,SW Devices scan不到SWDI,SWDI为空。这是因为设置jlink的时候要选择好芯片类,还报错的话,就添加芯片内存地址。jlink的四根烧录线和芯片直接接触不良或者没接好。
2023-07-03 11:19:05
1528
1
原创 消抖时间设置
电机,之类的,结构较大的产品消抖时间需要长些,为一百到几百毫秒。消抖时间可以根据不同产品设置不同的时间。按键,键盘,消抖时间一般为几十毫秒。
2023-07-01 07:15:08
3674
原创 单片机I/O口输入输出阻抗
在具有电阻、电感、电容的电路里,对交流电所起的阻碍作用叫阻抗,用Z表示。阻抗由电阻、容抗、感抗三者组成,但不是简单三者相加,单位为欧。解决单片机端口问题时,可以将阻抗简单看成电阻,忽略容抗和阻抗。
2023-06-15 21:39:52
3633
原创 滴答定时器
该函数使用当前SysTick计数器的值和计算出的延时所需的SysTick计数器值之间的差来计算延时时间。在循环中,如果当前SysTick计数器的值大于初始值,则直接减去它们的差;如果当前SysTick计数器的值小于初始值,则减去它们的差再加上SysTick计数器的最大值。是系统时钟频率,这里假设为1MHz,将SysTick的计数器周期设置为1毫秒(1000Hz)。这样就可以使用SysTick定时器在32位单片机上进行精确的延时了。点击复制后,将打开C知道体验页。
2023-05-24 21:30:18
1610
原创 C语言常用算法
用冒泡排序对这四个数排序,需要进行(4-1)轮比较,每轮都对相邻的两个元素进行排序。以此类推,直到待排序序列中仅剩 1 个元素,无论再进行相邻元素的比较,因此直接将其并入已排序序列中。//这是不带输出的冒泡排序实现函数,通过此函数,可直接对数组 a 中元素进行排序。//这是不带输出的冒泡排序实现函数,通过此函数,可直接对数组 a 中元素进行排序。//这是带输出的冒泡排序实现函数,从输出结果,可以看到冒泡的具体实现流程。//这是带输出的冒泡排序实现函数,从输出结果可以分析冒泡的具体实现流程。
2023-04-27 17:30:38
3811
原创 静态变量与动态变量的区别
(3)生命周期上:全局变量在程序开始运行之前的初始化阶段就诞生了,到整个程序结束退出的时候才死亡,而局部变量在进入局部变量所在代码块时诞生,在该代码块退出的时候死亡。判断一个变量能不能使用,有没有定义,必须注意两点:第一,该变量定义的作用域是否在当前有效,是否包含当前位置。自动(动态)变量:每次调用该函数的时,系统会给它分配存储空间,该函数调用结束释放其存储空间,即动态变量每次被调用都会被赋初值。静态变量:多次调用该函数,只有第一次调用会赋初值,其余调用时,其值都是上次调用该函数执行结束后的值。
2023-04-23 16:17:34
6684
原创 C语言基础知识
它只被初始化一次,自从第一次初始化直到程序与你新内阁结束都一直存在,他和全局变量的区别在于全局变量对所有的函数都是可见的,而静态局部变量只。这样即使两个不同的源文件都定义了相同的静态全局变量,他们也是不同的变量。他与全局变量的区别在于如果程序包含多个文件的话,他作用于定义它的文件里,不能作用到其他文件里。,而是只在函数执行期间存在,函数的一次调用结束后,变量就被撤销,其所占用的内存也被收回。全局变量、静态局部变量、静态全局变量都在静态存储区分配空间,而局部变量在栈分配空间。全局变量与全局静态变量的区别。
2023-04-17 22:11:51
449
原创 STM32 ADC采样
一个基本的SHA如图,开始的时候模拟开关闭合,通过输入缓冲放大器对模拟电压进行采样,电容C存储或保存采样电压一段时间,输出缓冲放大器提供一个高输入阻抗来防止电容快速掉电。②采样保持:如果被采样的模拟信号的变化频率相对于A/D转换器的速度来说比较高,为保证转换精度,需要在A/D转换之前加上采样保持电路,使得在A/D转换期间保持输入模拟信号不变。又称奈奎斯特采样定理,即当采样频率fs大于采样信号最高频率fmax的两倍时,采样后的数字信号完整地保留了原始信号中的信息。4.采样保持放大器(SHA)
2023-03-12 14:43:16
17238
2
原创 结构体和枚举
typedef struct stu{类型 成员名1;类型 成员名2;…}GPIO_;typedef 给struct stu这个类型取了一个新别名 GPIO_InitTypeDef,GPIO_InitTypeDef相当于struct stu,可以用GPIO_InitTypeDef来定义变量例如:GPIO_InitTypeDefGPIO_Init;GPIO_Init.成员名1=GPIO_PIN_9; //引用结构体成员变量,并赋值
2023-01-11 10:14:23
721
原创 解决STLINK下载程序报Cotex-M3 error
1.点击魔法棒,选择“debug”,配置ST-Link,点击“setting”2.选择ST-Link,检查SWDIO是否有芯片型号,如果没有就检查板子电源是否上电,这个OK后,根据板子的晶振配置下载速度,我用的是SW模式3.connect:选择under Reset
2023-01-10 11:32:06
907
转载 AT89C52+ADC0832+LCD1602 用ADC0832采集电压,并在1602上显示电
芯片使能选通后,在第1个CLK下降沿到来之前,DI需置1,这意味着开始转换。到这一步,本次模数转换中DI端工作部分已完成,不再输入数据,而是由DO端进行工作。在随后的CLK下降沿到来之前开始输出转换后的数字信号,先输出8位数据的最高位,之后在每一个CLK下降沿到来之前依次输出数据的一位,直到输出8位数据的最低位;但在本设计中在工作时DI和DO端在A/D转换时没有同时工作发挥作用,而是先由DI端口输入的两位数据来选择通道,再由DO端口输出数据,所以在本设计中将DI和DO接在51单片机同一个管脚上使用。
2022-12-24 12:36:01
11178
7
原创 AT89C51+四位数码管分秒时钟,解决闹钟的蜂鸣器关不掉的问题
在设计分秒时钟时,用到了数码管作为显示,定时器定时,当时钟走到设定时间时蜂鸣器响。过程中遇到了很多问题,程序也是在大佬的指点下不断优化。可能有些描述不对,我是新手,结论也是实践加现有理解写的,不一定对,不对的地方请多多指教!程序亲测有效
2022-12-23 19:05:21
2846
2
STM32 USB作为HOST驱动FT232R
2025-11-17
1.STM32F4能不能驱动 USB转串口类型的设备,
2025-11-01
每次都是用jlink 烧录一次程序后就识别不了了
2024-07-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅