- 博客(49)
- 收藏
- 关注
原创 单片机引脚的电气属性Electrical properties
S (Supply pin):I (Input-only pin):I/O (Input/output pin):FT (5 V-tolerant I/O):FTf (5 V-tolerant I/O, FM+ capable):TTa (3.3 V-tolerant I/O directly connected to ADC):TC (Standard 3.3 V I/O):B (Dedicated BOOT0 pin):RST (Bidirectional reset pin with embedded
2025-03-20 21:55:33
367
原创 keil点了调试Debug按钮后没有停下来
问题:正常我们点了Debug要在入口断下来,和在循环内断下来,可是没有就要开始排查。现有状况:下载正常,debug没有断下来。最好发现:没有焊接boot。测试:用金属丝短接。
2025-03-13 13:03:27
156
原创 cubemx配置ETH(以太网)
处理以太网通信的核心中断,用于数据收发和错误处理。:用于低功耗模式下,通过网络事件唤醒系统的中断。Mode:选择以太网通信模式(RMII 或 MII)。:是否启用接收错误信号检测。:配置设备的唯一 MAC 地址。:设置接收缓冲区长度,通常为 1524 字节。Rx Mode:选择接收方式(轮询模式或中断模式)。
2025-01-30 14:49:22
1194
原创 CAN总线
帧类型用途是否携带数据数据帧传输实际数据是远程帧请求发送数据帧否错误帧通知总线错误否过载帧延迟传输,避免总线过载否每种帧格式在 CAN 总线通信中都有特定的作用,确保总线的高效性和可靠性。
2025-01-27 17:08:46
481
原创 SocketCAN
socketcan是Linux上的CAN协议(控制局域网).大多数字符设备实现一次只支持一个进程打开设备,类似于串行接口。更换 CAN 控制器需要使用另一个设备驱动程序,并且通常需要使应用程序的大部分内容适应新驱动程序的 API。Socketcan的出现克服所有这些局限性。像注册网络协议一样打开socket,传递CAN协议.创建完成需要进行绑定(bind),发送使用send、sendto、sendmsg,接收使用recv。以下代码是创建一个CAN套接字并将其绑定到指定CAN接口(如can0。
2025-01-25 15:20:34
1062
原创 Pmos_VGS正负25v芯片方案与重要参数选型
pmos芯片要考虑的重要参数:导通电阻(R_DS(on))栅极阈值电压(V_GS(th))开关延迟时间(t_d(on)、t_d(off))栅极电荷(Q_G(TOT)、Q_GS、Q_GD)驱动电路设计:散热设计:高频应用:保护电路:在使用AOD403 PMOS时,以下参数尤为重要:芯片方案:注意:漏源电压和栅源电压:电流能力:功耗:雪崩能力:热阻性能:导通性能:电容特性:开关性能:体二极管性能:
2025-01-20 18:16:39
949
原创 PMOS设计电路时候最主要要关注的参数
在设计PMOS电路时,选择和使用PMOS的关键在于根据具体应用场景,关注以下主要参数。根据具体应用场景(如开关电源、电池保护或负载开关),选择合适的PMOS参数,才能保证电路的性能和可靠性。
2025-01-20 17:31:44
690
原创 PMOS管的导通条件
PMOS管(P型金属氧化物半导体场效应晶体管)的导通条件主要与其栅极(Gate)、源极(Source)和漏极(Drain)之间的电压关系有关。
2025-01-20 17:19:47
2988
2
原创 基于STM32的UART DMA处理不定长数据通信代码讲解
本代码实现了基于STM32的UART通信功能,采用DMA(DirectMemoryAccess)方式接收和发送数据,主要用于高效的数据传输,避免占用CPU资源。代码中还结合了RS485通信的方向控制,适用于需要半双工通信的场景。
2025-01-19 21:18:24
549
原创 主控制器与子模块通讯协议
元件状态在协议中主要用于描述软元件的当前状态(旧状态和新状态),具体根据元件类型的不同,其状态值的含义也不同。的作用是主站请求子模块报告其软元件动态,同时下发需要子模块刷新的操作。其数据区内容根据子模块类型(数字量、模拟量或通讯模块)有所不同。:数据长度字段仅包含数据区长度,不包括站号、功能码、子模块类型(某些协议中不含此字段)和CRC校验。,其数据区内容根据子模块的功能类型(数字量、模拟量或通讯模块)有不同的排列方式。的作用是子站报告其全部扩展模块的数量。该功能用于主站查询子站的扩展模块信息。
2025-01-19 14:38:22
881
原创 usart与dma接收定长数据与空闲中断
是HAL库的扩展函数,专门用于解决上述问题,特别适合处理串口通信中不固定长度的数据帧。是HAL库中用于通过DMA接收数据的基础函数。需要手动启用空闲中断,并在中断回调中处理接收到的数据。
2025-01-19 10:33:13
383
原创 cubeMX_TIME配置
TIM3 是一个通用定时器,支持多种功能,比如定时中断、PWM 输出、输入捕获和编码器模式等。如果 TIM3 需要外部触发信号(比如来自另一个定时器或外部引脚),则需要配置触发源。如果你需要 TIM3 作为其他定时器的从设备(比如用于触发同步),可以启用从模式。配置预分频器(Prescaler)和自动重装载值(ARR),以生成所需的中断频率。如果需要组合多个通道(比如用于高级 PWM 功能),可以在这里进行配置。:启用 XOR 功能,用于输入捕获时将多个输入信号组合。:用于测量输入信号的频率或脉宽。
2025-01-18 10:40:30
1347
1
原创 FreeRTOS任务切换
任务A切换任务B:对任务A保存现场,堆任务B恢复现场的这个过程就是上下文切换。FreeRTOS任务切换到过程在PendSV中断服务函数里面完成。PendSV中断触发条件:实际是ICSR寄存器bit28位置1触发。将CPU寄存器PUSH到任务块堆栈中,这个过程称保存现场。将任务堆栈POP到CPU寄存器中,这个过程称恢复现场。任务切换3个概念:保存现场、恢复现场、上下文切换。进入分析xTaskIncrementTick()退出分析xTaskIncrementTick()
2024-07-03 19:27:50
213
原创 FreeRTOS开始调度器启动第一个任务分析
vPortSVCHandler只会在调度器开启调用一次进行任务切换,后面任务切换在PendSV进行。
2024-07-03 15:50:13
205
原创 【无标题】
关于prvStartFirstTask()函数设计TCB出栈和汇编将开新一篇进行分析。进入分析vPortSetupTimerInterrupt( void )退出分析vPortSetupTimerInterrupt( void )进入分析xPortStartScheduler()退出分析xPortStartScheduler()
2024-07-03 12:23:59
170
原创 FreeRTOS列表项插入列表vListInsertEnd()
函数用于将待插入列表的列表项(pxNewListItem)插入到列表 pxIndex 指针指向列表项的前面,是一种无序的插入方法。
2024-07-03 01:16:18
237
原创 FreeRTOS静态创建任务分析
define configSUPPORT_STATIC_ALLOCATION 1 设置了静态创建任务。需要重新定义这2个函数,由程序员进行分配任务空间(空闲任务)(定时任务)定义空闲分配空间函数和定时分配空间函数。在调度器里被使用这2个函数。静态创建任务内部分析。
2024-07-01 11:28:56
590
原创 FreeRTOS删除任务内部分析
在RTOS环境中,空闲任务是一个特殊任务,当系统中没有更高优先级的任务可运行时,空闲任务会被调度执行。如果要删除当前任务,就会把任务插入 等待删除列表,接着从调度器创建的空闲任务中的,prvCheckTasksWaitingTermination();进入分析prvCheckTasksWaitingTermination();退出分析prvCheckTasksWaitingTermination();进入分析vTaskDelete();进入分析vTaskDelete();执行的任务要删除其他任务时。
2024-06-30 20:24:16
465
rs485-dma-LinuxAndSTM32CAN\ProfibusDP主机与从机交互
2025-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人