自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

莲花码农

博主从事嵌入式工作十多年,熟悉掌握stm32、esp32、linux、蓝牙mesh、LVGL、QT等技术,欢迎一起交流

  • 博客(6)
  • 收藏
  • 关注

原创 【c/c++】c/c++通过取消结构体字节对齐的方法,实现高效的解析协议和打包协议

在嵌入式程序通讯的过程中,往往需要发送协议,打包协议和解析协议的操作比较繁琐,如果可以用结构体按照协议定义成员变量。在解析协议和发送协议的时候效率会很高,但是实际测试发现成员变量长短不同时,在内存分配时,编译器会进行内存对齐。由此可以看到,结构体取消字节对齐,可以让结构体按真实长度占用内存,使得在打包协议的时候。格式没有多余的00,在发送数据的时候,不需要单独打包数据,直接发送结构体就可以了,减少业务代码,但是需要留意大小端问题。这种对齐通常基于数据类型的大小,以确保数据在内存中的布局符合特定的要求。

2024-08-24 18:52:22 903

原创 【FreeRTOS】FreeRTOS的任务创建和删除(三)

任务的创建和删除本质就是调用FreeRTOS的API函数:任务的任务控制块以及任务的栈空间所需的内存,均由 FreeRTOS 从FreeRTOS 管理的堆中分配:任务的任务控制块以及任务的栈空间所需的内存,需用户分配提供动态创建任务函数(用起来只需这三步)1、将宏configSUPPORT_DYNAMIC_ALLOCATION 配置为 12、定义函数入口参数3、编写任务函数此函数创建的任务会立刻进入就绪态,由任务调度器调度运行1、申请堆栈内存&任务控制块内存2、TCB结构体成员赋值。

2024-08-24 15:32:17 931

原创 【c/c++】从C到C++快速入门(会c语言想学c++看这篇文章就够了)

从事嵌入式多年,一直和mcu打交道,只用到c语言,后来为了学习QT。就得学习c++,市面上很多教程都是从基础开始教。明显不适合我,经过网上大量查找和总结,终于整理成一篇以从事c语言工作者的角度,快速跨入c++工作者的笔记。适合于c语言基础扎实的人学习,可以快速掌握c++。

2024-08-23 12:45:32 1847 2

原创 【c/c++】简洁的c语言的程序编程和命名规范

程序命名规范在软件开发中扮演着至关重要的角色,它们不仅影响着代码的可读性、可维护性,还直接关系到团队协作的效率和项目的长期成功。综上所述,指定程序命名规范对于提高代码质量、促进团队协作、增强代码可维护性和可读性等方面都具有重要意义。因此,在软件开发过程中,应该重视命名规范的制定和执行。

2024-08-23 08:36:36 917

原创 【FreeRTOS】任务调度与任务状态的介绍(二)

调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。

2024-08-22 19:03:31 927

原创 【FreeRTOS】裸机与RTOS的区别和特点(一)

我们可以用小明打游戏和回复微信来比喻两个任务,来分析裸机和RTOS的区别。当小明要进行打游戏和回复微信的动作时,裸机和RTOS的运行代码和逻辑。所以,打游戏和回复微信轮流执行,当打游戏时,不能回复消息,当回复消息时,不能打游戏。所以,打游戏和回复微信并发执行,当打游戏时,也能回复消息,当回复消息时,也能打游戏。裸机:裸机又称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环,即应用程序。同样的场景,假设此时小明肚子疼了,要去医院,此时裸机与RTOS。,就是实时操作系统,强调的是:实时性。

2024-08-22 17:01:31 728

任务创建和删除的API函数keil工程源码

任务创建和删除(动态方法) 1、实验目的:学会 xTaskCreate( ) 和 vTaskDelete( ) 的使用 2、实验设计:将设计四个任务:start_task、task1、task2、task3 四个任务的功能如下: **start_task**:用来创建其他的三个任务 **task1**:实现LED0每500ms闪烁一次 **task2**:实现LED1每500ms闪烁一次 **task3**:判断按键KEY0是否按下,按下则删掉task1 任务创建和删除(静态方法) 1、实验目的:学会 xTaskCreateStatic( ) 和 vTaskDelete( ) 的使用 2、实验设计:将设计四个任务:start_task、task1、task2、task3 四个任务的功能如下: start_task:用来创建其他的三个任务 task1:实现LED0每500ms闪烁一次 task2:实现LED1每500ms闪烁一次 task3:判断按键KEY0是否按下,按下则删掉task1

2024-08-24

毕业论文基于单片机控制的开关电源论文资料

本文介绍了一种基于单片机控制的数控开关电源,以89C51单片机作为控制核心,对开关变换电路进行脉宽调制,构成一个智能闭环控制系统。单片机控制的开关电源具备更加完善的功能,更人性化、智能化,便于实时监控。其功能主要包括对开关电源输出电压进行检测,并显示实时电压值;通过按键进行编程预置期望输出的电压;通过A/D转换器采样输出电压,根据PID算法计算控制量修改占空比,以得到期望的输出电压,并通过PID算法控制输出电压稳定在设定的电压值上;拥有可靠的过流保护功能以及辅助电源可同时作为电源输入和给单片机提供工作电压,并可以通过键盘不断改变PID参数,可以进行实时调整。本系统具有友好的用户界面,结构简单,成本低廉,实用性强,扩展空间大,可作为实验室电源,在计算机,家电产品等许多方面也有非常好的应用前景。 开关电源因其具有功耗低、效率高的优点,在家用电器、科学实验、教学设备等等领域得到了广泛的应用。随着电子技术的高速发展,各种电子设备对电源的要求越来越高,电源也朝着高效率、高可靠性以及智能化的方向发展。传统开关电源使用专门的脉宽调制芯片,结构复杂,而利用单片机和键盘可以简化电源结构,实现对电源的智能

2024-08-23

基于单片机控制的交通灯毕业设计资料

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本设计主要分为五大模块输入控制电路、时钟控制电路、片内外程序切换控制、显示电路。以MSC-51系列单片机IntelAT89C51为中心器件来设计交通灯控制器,实现了AT89C51芯片的P0口设置红、绿灯、黄灯燃亮时间的功能;为了系统稳定可靠采用了74LS14施密特触发器芯片的消抖电路,避免了系统因输入信号抖动产生误操作;显示时间直接通过AT89C51的P2口输出,由CD4511驱动LED数码管显示红灯燃亮时间。 关键字:AT89C51 LED显示 交通灯

2024-08-23

空空如也

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

TA关注的人

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