
一种轻便的裸机多任务实现方法
你是否因为将一大堆任务都放在while循环中,通过一系列的条件判断语句(如if、else、switch、case)来处理而感到烦恼?或者你想使用类似FreeRTOS或uCos这样的实时操作系统,但发现芯片的存储空间有限,无法添加进去…如果是这样的话,本文将向你推荐一种裸机多任务实现的方法,让你告别繁琐的while(1)循环。如果有任何错误之处,请指正,我们一起交流吧~

嵌入式中输出调试有几种方法?
基于MCU的嵌入式软件开发可能会遇到存储空间不足的情况,因此无法有效地保存调试和日志信息。
在这种情况下,通过某种方式输出调试(Debug)和日志(Log)信息就变得非常重要。

嵌入式编程上下文切换及完美解耦的一种方法
通常我们认为,在中断处理程序中不应该执行耗时操作,因为这可能会影响系统的稳定性,特别是在嵌入式编程中。在具有操作系统的程序中,可以通过操作系统的调度机制将中断处理分成两个部分,将耗时操作放在线程中执行。但是对于没有操作系统的情况下,应该如何处理呢?

嵌入式和单片机是同一个东西吗?
对于从事信息技术相关工作的人来说,嵌入式和单片机这两个术语肯定不陌生。
大家都知道,这两个术语与硬件系统有着紧密的联系。
但是,如果要具体询问嵌入式和单片机的定义以及它们之间的区别,我相信大多数人无法清楚解释。

一个清晰的LCD驱动编写思路(附代码分析)
网络上有很多为STM32开发板编写的LCD示例代码,主要涵盖TFT LCD和OLED等类型。通过这些示例代码,开发者们可以学习如何点亮一个LCD屏幕。然而,这些代码存在以下问题:

一个高效的BootLoader与APP固件合并方法
在嵌入式产品中,通常将固件分为两个部分,即BootLoader和应用程序(App)。BootLoader用于执行启动校验、应用程序升级和版本回滚等功能。BootLoader在启动时运行,然后跳转到应用程序地址执行实际的应用程序。

自定义协议解析组包中,大小端问题如何处理?
在嵌入式产品开发中,常常会遇到不同设备之间的通信、设备与服务器的通信以及设备和上位机的通信等问题。这些通信往往需要使用自定义的协议进行解析和组包。

通过实例分析来认识一下QP状态机
Blinky是自带的一个很简单的例子,也就是我们俗称的”Hello World!”,可以帮助我们了解QP。在这个blinky中,是以1HZ的速率闪烁LED灯,0.5s开灯,05s关灯。

嵌入式中,什么情况用C?什么情况用C++?
分享这篇文章,我们将谈论STM32的启动流程。如果读者朋友已经对汇编有一定的基础,那么对本文的内容应该能够有很好的理解。汇编语言比C语言更接近底层机器语言,能够让我们更好地理解和操控底层硬件。