自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 STM32裸机开发中,使用USART+DMA+RingBuffer实现非阻塞发送

对于熟悉DMA的人,可以采用DMA进行发送,可以极大的提升发送效率。当然,DMA发送时,也要确保发送新消息时,上一条消息已经发送完毕。如果串口速率较小,发送量过大,同样为了等待上一条消息发送完毕而等待的延时也会比较长,因此,可以将需要发送的消息放入一块缓冲区,然后在任务中轮询DMA是否空闲,如果空闲,则将缓冲区中的数据放入DMA中发送;在printf函数中,将转换好格式的字符串塞入环形队列,即可去执行其他任务。这种发送方式耗时较长,对于有的项目中有大量的调试信息输出时,会有较长时间卡在发送过程中。

2025-02-25 11:34:48 166

原创 STM32F7/H7系列PHY芯片LINK UP,但是无法通信的一种情况

在STM32F7/H7系列编写PHY芯片驱动,读取寄存器得知PHY已经处于LINK UP状态,确认网口电路没问题的情况下,电脑ping不通单片机,调试模式下观察DMARxDscrTab内容没有变化。

2024-09-26 09:48:42 532

原创 基于STM32裸机的简单任务调度程序

通常在STM32上面进行裸机开发时,有的需要进行延时操作,常用的办法是使用systick计时并使CPU空转。当延时时间达到毫秒级的时候,这种方式会大幅度导致程序运行效率下降。本文采用一种仿照OSAL的任务队列的方法,当一个任务延时的时候,不耽误其他任务的运行。通常裸机程序没有内存管理,文章中的程序没有使用malloc函数。

2024-04-03 11:22:50 1158 2

原创 基于安培-时间积分算法的电池管理系统(BMS)简单方案

BMS,全称为Battery Management System,即电池管理系统,是针对各类电池(如锂离子电池、铅酸电池等)的智能化管理装置。BMS的主要功能包括电池状态监测、电池性能均衡、故障诊断与保护、电量计算与预测等多个方面。

2024-03-30 16:31:13 2563 1

原创 zstack 3.0打开睡眠模式

首先,只有在终端设备上才能使用睡眠模式。进入预编译选项,把xPOWER_SAVING的x去掉。在mainhanshu

2018-06-06 13:24:08 1001 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除